【发布时间】:2010-12-04 13:24:46
【问题描述】:
我有一个使用 JRuby 解释器运行的 ruby 脚本。 该脚本使用 DBI 和 Sybase JDBC(jTDS3.jar 和 jconn3.jar)连接到 Sybase 数据库
我的问题是我有一个选择查询会改变表的列名。 例如:
SELECT
t.TRANSACTION as 'business_transaction',
t.TRADE_CURRENCY as 'currency',
t.CURRENCY as 'settlement_currency'
...etc...
FROM
TRADE t
...etc...
我的问题是直接使用documentation 中的示例时
sth = dbh.execute(stmt)
printf "Number of rows: %d\n", rows.size
printf "Number of columns: %d\n", sth.column_names.size
sth.column_info.each_with_index do |info, i|
printf "--- Column %d (%s) ---\n", i, info["name"]
end
或者干脆
sth = dbh.execute(stmt)
rows = sth.fetch_all
col_names = sth.column_names
sth.finish
DBI::Utils::TableFormatter.ascii(col_names, rows)
不是ALL当我在查询中使用'as'子句设置名称时会出现这些名称。有些是原始字段名称,有些是我指定的名称。
例如,他们将列出如下:
--- Column 0 (TRANSACTION) ---
--- Column 1 (TRADE_CURRENCY) ---
--- Column 2 (settlement_currency) ---
或
TRANSACTION
TRADE_CURRENCY
settlement_currency
在 Squirrel SQL Client 中测试时,列的名称正确,这是 DBI 或 Sybase JDBC 驱动程序中的错误吗?还是我做错了什么?
任何帮助将不胜感激
【问题讨论】: