导出到文件,省略换行符

时间:2019-05-15 21:41:23

标签: sql-server

我正在一个项目上,必须将数据从SQL Server 2008 r2数据库导出到文本文件。客户要求每行末尾都有CHAR(13)+CHAR(10)。我的部分代码调用了一个用户定义的函数来连接我要获取的部分数据。

这是我的主要脚本:

SELECT DISTINCT
CAST('01' AS CHAR(3))+
CAST(CUSTOMERNAME AS CHAR(10))+
dbo.GETORDERS(CUSTOMERNNUMBER) + 
AST('03' AS CHAR(3))+       
CAST(ISNULL(ADDRESS_LINE,'') AS CHAR(30))+
CAST(ISNULL(CITY,'') AS CHAR(20))+
CAST(ISNULL(UPPER(STATE),'') AS CHAR(2))+
CAST(ISNULL(ZIP,'')AS CHAR(10)) 
FROM TABLE1

下面是我的函数GETORDERS代码。该函数接受参数@CUSTOMERNUM

DECLARE @output VARCHAR(max) = ( SELECT
            CAST('02' AS CHAR(3)) +
            CAST (LEFT(ORDER_FIELD1,40) AS CHAR(40)) +
            CAST (LEFT(ORDER_FIELD2,40) AS CHAR(40)) +
            CHAR(13)+CHAR(10)
        FROM [ORDER_TABLE] ord
        WHERE CUSTOMERNUM = @CUSTOMERNUM
        FOR XML PATH(''))

SET @output = REPLACE(@output,'
','')

我可以运行脚本,将查询结果返回到网格,将其复制/粘贴到NotePad ++中,并且返回字符显示得很好。请参阅第一个屏幕截图。注意,所有行都有字符。

enter image description here

现在,如果我使用查询来归档或使用导入/导出向导来运行代码。在NOTEPAD ++中,该函数生成的部分不显示返回字符。请参阅第二个屏幕截图。

enter image description here

那么,为什么仅在使用Import \ Export向导或查询文件时才显示返回字符之一?我可以“全部选择”并复制/粘贴,但是生成的数据太多,导致出现“内存不足”异常。如果我想出一种通过查询文件或使用导入/导出向导来自动执行此操作的方法,则可以节省很多时间。另外,我对引起此问题的原因感到好奇。

0 个答案:

没有答案