Получить ошибку при описании таблицы в векторе, используя модуль python ingresdbi

Я использую входной модуль Python для связи с векторной базой данных. Для описания таблицы я использую код ниже:

import ingresdbi
local_db =  ingresdbi.connect(database ='x',uid ='y',driver ='z',pwd ='p')
local_db_cursor = local_db.cursor()
local_db_cursor.execute('help tran_applog ; ' )

Я получаю эту ошибку:

Syntax error.  Last symbol read was: 'help'."

Решения будут оценены. Спасибо

2 ответа

Проблема, с которой вы столкнулись, заключается в том, что "помощь" не является реальным оператором SQL, понятным для сервера СУБД. Это действительно команда мониторинга терминала, которая преобразуется в некоторые запросы к системным каталогам под обложками.

Альтернатива немного зависит от того, что вы пытаетесь получить из "таблицы описаний". Системные каталоги, относящиеся к информации о таблицах и столбцах, представляют собой iitables и iicolumns, и вы можете сделать выбор против них. Проверьте документацию или эксперимент.

В качестве альтернативы, возможно, имеется дескриптор строки, который вы можете получить от ingresdbi, см. Пример здесь http://community.actian.com/wiki/Python_Row_Description

НТН

Я считаю, что вы должны сделать это, как в любом другом сценарии оболочки: echo "help tran_applog;" | sql mydatabase

Причина: "HELP" не является стандартным оператором SQL.

По предложению PaulM, лучший способ получить метаданные о таблицах - это запросить системные каталоги (iitables, iicolumns, iirelation и т. Д.).

Начните с чего-то вроде:

SELECT C.column_name, C.column_datatype 
FROM iitables T, iicolumns C 
WHERE T.table_name = C.table_name 
  AND T.table_name = 'tran_applog';\g
Другие вопросы по тегам