尝试使用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值。
答案 0 :(得分:0)
如果您需要在输出文件中为该字段看到3个空格,那么您需要在自己中放入空格,并强制它们(使用NULLIF调用)...我不建议这样做...或最好的方法是,无论您得到什么值(文本,空格或null),都希望该字段始终为3个字节,则将该字段指定为char(3)。只需在查询中将该字段转换为char(3)。
从[Siron_ETL]中选择CAST(INSTITUTE + H_COUNTRY AS CHAR(3)。[dbo]。[in_customer]