2015-06-04 47 views
0

我是sybase的新手,我正在寻找帮助格式化输出。我有一个查询,我正在运行并将结果输出到一个平面文件。在sybase IQ中输出格式15.3

这里是我的命令行:

isql -U ro -S DCIQ -P Qx346788 -imysql.sql -oresults.txt -b -w2500 -s"|" 

我查询的输出来作为:

|  20110915|  1.07000000| 27875450|UBC  |XW01  | 

这不是我所期待的。我想格式化输出,以便它通过没有空格的管道分隔。例如,我想要这样的输出:

|20110915|1.07000000|27875450|UBC|XW01| 

我该如何摆脱空间来获得他的输出?

我试过其他选择,但遇到错误:

1> select "hi" from dummy; 
2> OUTPUT TO data.txt 
3> go 
Msg 102, Level 15, State 0: 
SQL Anywhere Error -131: Syntax error near 'OUTPUT' on line 2 

的Sybase IQ/15.3.0.6056/110506/P/GA /企业LINUX64 - x86_64的 - 2.6.9-67.0.4.EL

+0

替代方法中的语法不正确。删除分号,删除第2行,并将'> data.txt'添加到'go'的行中。 –

回答

0

有几种方法可以做到这一点。

1 - Output redirect或使用temp_extract_*选项来设置temporary extraction point。这会导致查询的结果集直接写入文件,而不是转到客户端。

2 - 使用bcp。这确实需要结果集可以在临时表或视图中访问,但它可能允许您提取数据并指定您希望使用的分隔符。

+0

我无法使用bcp,因为我只能按会话创建临时表,并且bcp打开不同的会话并且不会看到我的数据。你可以给我一个输出重定向的例子,以及如何管道定界数据 – yoohoo

+0

使用你的例子'1>从dummy''2> go> data.txt'选择“hi”在文档链接中也有例子。 –

+0

嗨,我尝试去> data.txt,但仍然看到带有上述空格的输出 – yoohoo