1

我正在使用 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'."

解决方案将不胜感激。谢谢

4

2 回答 2

1

您遇到的问题是“帮助”不是 DBMS 服务器理解的真正 SQL 语句。它实际上是一个终端监视器命令,它被转换为对幕后系统目录的一些查询。

另一种选择取决于你试图从“描述表”中得到什么。与表和列信息相关的系统目录是 iitables 和 iicolumns,您可以对它们进行选择。检查文档或实验。

或者,您似乎可以从 ingresdbi 获得一个行描述符,请参阅此处的示例http://community.actian.com/wiki/Python_Row_Description

高温高压

于 2014-05-20T19:38:01.093 回答
0

我相信您应该像在任何其他 shell 脚本中一样执行此操作: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
于 2014-07-10T09:25:27.257 回答