2

我希望能够通过运行基本上以文本形式导出表或视图(SELECT * FROM tbl)的命令或批处理来生成文件(日期、数字等的默认转换为文本很好),制表符-分隔,将 NULL 转换为空字段(即 NULL 列在制表符之间没有空格,具有适当的行终止(CRLF 或 Windows),最好也具有列标题。

这是我可以在 SQL Assistant 12.0 中获得的相同导出,但选择导出选项,使用制表符分隔符,将我的 NULL 值设置为 '' 并包括列标题。

我一直无法找到正确的选项组合——我得到的最接近的方法是使用 CAST 和 '09'XC 构建单个列,但在我尝试过的大多数设置中,行仍然具有前导 2 字节长度指示符。我宁愿不必为各种不同的表构建大字符串。

4

1 回答 1

3

要消除 FastExport 输出中的 2 字节:

.EXPORT OUTFILE &dwoutfile MODE RECORD FORMAT TEXT;

并且您的 SELECT必须生成一个固定长度的导出字段,例如CHAR(n)。因此,您将放大文件的大小并最终得到一个分隔但固定长度的导出文件。

另一种选择是,如果您在 UNIX/Linux 环境中,您可以对文件进行后处理并去除前导两个字节,或者在 C 中编写 ASXMOD 来执行此操作,因为记录会流式传输到文件中。

于 2010-03-18T19:40:22.417 回答