1

我正在尝试使用dbisqlc.exeWindows 系统上的命令行查询 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

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

任何帮助将不胜感激。

4

2 回答 2

1

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

于 2011-03-03T01:57:40.130 回答
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解析结果集。

这可能不是最有效的方法,但我认为它应该给我我正在寻找的结果。

于 2011-03-03T15:59:27.533 回答