BCP 实用工具:无法导出到具有空值的文本文件



尝试使用 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 时,我导出时客户.txt中没有数据。如果我用空格或任何字符替换 NULL 值,它可以工作。如何在列中使用 NULL 值导出。

如果您需要在此字段的输出文件中查看 3 个空格,那么您需要自己放置空格,强制它们(使用 NULLIF 调用(...我不建议这个...或者更好的方法是,如果您希望此字段始终为 3 个字节,无论您获得什么值(文本、空格或 null(,就是将该字段指定为 char(3(。只需在查询中将字段转换为 char(3( 即可。

从 [Siron_ETL] 中选择 CAST( INSTITUTE+H_COUNTRY 作为 CHAR( 3 (。德博]。[in_customer]

最新更新