У меня есть скрипт ruby, который я запускаю с помощью интерпретатора JRuby.
Сценарий подключается к базе данных Sybase с использованием DBI и Sybase JDBC (jTDS3.jar и jconn3.jar)
Моя проблема в том, что у меня есть запрос на выборку, который изменяет имена столбцов таблицы.
Например:
SELECT
t.TRANSACTION as 'business_transaction',
t.TRADE_CURRENCY as 'currency',
t.CURRENCY as 'settlement_currency'
...etc...
FROM
TRADE t
...etc...
Моя проблема заключается в использовании примеров непосредственно из документации
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)
Not ALL имена появляются, когда я их устанавливаю с помощью предложения as в предложении. Некоторые из них являются исходными именами полей, а некоторые являются именами, которые я указал.
Например, они будут перечислять как:
--- Column 0 (TRANSACTION) ---
--- Column 1 (TRADE_CURRENCY) ---
--- Column 2 (settlement_currency) ---
или
TRANSACTION
TRADE_CURRENCY
settlement_currency
При тестировании этого в Squirrel SQL Client столбцы имеют правильное имя, поэтому это ошибка в DBI или драйверах Sybase JDBC? или я что-то не так делаю?
Любая помощь будет принята с благодарностью