如何使用dbisqlc.exe命令收集列标题和数据

时间:2011-03-02 21:02:06

标签: sybase-asa

我正在尝试使用Windows系统上的dbisqlc.exe命令行查询Sybase ASA数据库,并希望收集列标题以及关联的表数据。

示例:

dbisqlc.exe -nogui -c "ENG=myDB;DBN=dbName;UID=dba;PWD=mypwd;CommLinks=tcpip{PORT=12345}" select * from myTable; OUTPUT TO C:\OutputFile.txt

如果此命令写入stdout,我更喜欢它,但除了使用我所在环境中不可用的dbisql.exe之外,它似乎不是一个选项。

当我以这种格式运行时,会以不可分析的格式生成标题和数据。

非常感谢任何协助。

2 个答案:

答案 0 :(得分:1)

尝试将“FORMAT SQL”子句添加到OUTPUT语句中。它将为您提供包含列名和数据的select语句。

答案 1 :(得分:0)

在查看以下 dbisqlc.exe 命令的输出时,似乎我可以使用perl解析输出。

命令: dbisqlc.exe -nogui -c“ENG = myDB; DBN = dbName; UID = dba; PWD = mypwd; CommLinks = tcpip {PORT = 12345}”select * from myTable;输出到C:\ OutputFile.txt

使用文本编辑器(如vi或TextPad)输出似乎在奇数位置中断,但是此命令的输出实际上是以特定列宽返回的。

输出的第二行包含一组='的符号,这些符号包含在每列的宽度中。我所做的是基于='构建一个“模板”字符串,该字符串可以传递给 perls unpack 函数。然后,我使用此模板构建一个列名称数组,并使用解压缩解析结果集。

这可能不是最有效的方法,但我认为它应该给我我想要的结果。