Утилита BCP: невозможно экспортировать в текстовый файл с нулевым значением - PullRequest
0 голосов
/ 11 октября 2018

У меня возникла проблема при попытке экспорта в текстовый файл с помощью утилиты bcp.Вот мой сценарий:

USE [Siron_ETL]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER procedure [dbo].[customer]
AS
Declare   @V_SQL_TMP     VARCHAR (4000)
SET @V_SQL_TMP = 'bcp " SELECT  INSTITUTE+H_COUNTRY+replicate('' '',3-len( H_COUNTRY)) from [Siron_ETL].[dbo].[in_customer]" queryout "C:\Customer.txt" -c -UTF8 -T -t -Slocalhost'  
EXEC xp_cmdshell @V_SQL_TMP

Однако, когда H_Country равен NULL, я экспортирую без данных в Customer.txt.Если я заменяю значение NULL пробелом или любым символом, это работает.Как я могу экспортировать со значением NULL в столбце.

1 Ответ

0 голосов
/ 06 ноября 2018

Если вам нужно увидеть 3 пробела в выходном файле для этого поля, то вам нужно либо поместить пробелы в себя, принудительно их (с помощью вызова NULLIF) ... Я не предлагаю это ... илилучший способ, если вы хотите, чтобы это поле было последовательно 3 байта независимо от того, какое значение вы получаете (текст, пробелы или ноль), это указать поле как char (3).Просто приведите поле как char (3) в своем запросе.

ВЫБЕРИТЕ CAST (INSTITUTE + H_COUNTRY AS CHAR (3) из [Siron_ETL]. [Dbo]. [In_customer]

...