How to fix Error 5338 on Windows Server 2025 / Windows 11

Troubleshooting Guide: SQL Server Error 5338 – “Format Option Cannot Be Specified Together with SINGLE_BLOB”

Why This Error Happens

This error occurs when a BULK INSERT or OPENROWSET(BULK...) statement incorrectly mixes incompatible options within the same command. Specifically, the SINGLE_BLOB option is designed to import data as a single, unstructured binary object, which conflicts directly with formatting options like FORMATFILE, FIELDTERMINATOR, or FORMAT = 'CSV' that expect structured, row-based data. Since the SQL Server parser cannot reconcile “treat this as one giant blob” with “parse this using specific column rules,” it rejects the query before execution.

Step-by-Step Resolution Guide

Step 1: Identify the Conflicting Syntax in Your Query

  • Open the specific T-SQL script that triggered Error 5338 in SQL Server Management Studio (SSMS) 21 or Azure Data Studio.
  • Look for a BULK INSERT or OPENROWSET statement that contains SINGLE_BLOB alongside FORMAT, FIELDTERMINATOR, ROWTERMINATOR, or FORMATFILE.
  • Example of the broken syntax: SELECT * FROM OPENROWSET(BULK 'C:\Data\file.csv', SINGLE_BLOB, FORMAT='CSV') AS Data;

Step 2: Determine Your Actual Import Intent

  • Decide if you need to import the file as raw binary data (e.g., for a VARBINARY(MAX) column, such as loading an image or a PDF) or if you need to parse a structured text file (e.g., CSV).
  • If raw binary is needed, you must strip out all formatting arguments.
  • If structured parsing is needed, you must remove the SINGLE_BLOB keyword entirely.

Step 3: Correct the Query Syntax

  • For Raw Binary Imports: Remove the format arguments. The corrected syntax should look like: SELECT * FROM OPENROWSET(BULK 'C:\Data\file.csv', SINGLE_BLOB) AS Data;
  • For Structured CSV/Text Imports: Remove SINGLE_BLOB and define the structure explicitly. The corrected syntax should look like: BULK INSERT dbo.YourTable FROM 'C:\Data\file.csv' WITH (FORMAT = 'CSV', FIRSTROW = 2, FIELDTERMINATOR = ',');
  • Ensure the file path (e.g., C:\Data\file.csv) is accessible to the SQL Server service account on the Windows Server 2025 host.

Step 4: Validate File Permissions and Path Accessibility

  • Navigate to the folder containing the target data file in Windows Explorer or via PowerShell.
  • Right-click the folder, select Properties > Security, and ensure the SQL Server service account (e.g., NT Service\MSSQLSERVER) has at least Read permissions.
  • Re-run the corrected query in a new query window to confirm the syntax error (5338) has cleared.

Alternative or Verification Steps

  • Verification: Execute the corrected query with SET STATISTICS IO ON; to confirm the data loads successfully without triggering a syntax error, and check the Messages tab in SSMS for a “rows affected” confirmation.
  • Alternative: If you need to combine binary data handling with metadata/row structure, use OPENROWSET(BULK...) to load the file as SINGLE_BLOB into a temporary variable first, and then process the formatting logic within the T-SQL query itself rather than within the BULK clause.