使用vertica_python驱动程序以编程方式获取列长度

使用vertica_python驱动程序以编程方式获取列长度,python,sql,vertica,Python,Sql,Vertica,是否可以运行类似于\d schema.table\u name通过vertica_python?我遇到以下错误,表明它不喜欢前导反斜杠: vertica_python.errors.VerticaSyntaxError: Severity: ERROR, Message: Syntax error at or near "\", Sqlstate: 42601, Position: 1, Routine: base_yyerror, File: /scratch_a/release/svrtar

是否可以运行类似于
\d schema.table\u name通过vertica_python?我遇到以下错误,表明它不喜欢前导反斜杠:

vertica_python.errors.VerticaSyntaxError: Severity: ERROR, Message: Syntax error at or near "\", Sqlstate: 42601, Position: 1, Routine: base_yyerror, File: /scratch_a/release/svrtar9988/vbuild/vertica/Parser/scan.l, Line: 1043, SQL: '\\d schema.table_name;'

我基本上是想得到程序中几个VARCHAR列的长度。我总是可以将命令放在一个文件中,运行
vertica-f my_file>out_file
并解析out_文件,但我正在寻找更好的方法。

只需对系统视图执行查询()。比如:

select *
from columns
where table_schema = 'MYSCHEMA'
and   table_name = 'MYTABLE'
order by column_id
\d
是一个
vsql
命令,而不是服务器端命令

由于您使用的是
vertica_python
,另一种可能是在执行查询后从光标检查字段。如果您已经有一个resultset,并且希望了解数据类型,则此功能非常有用。不过,我可能只会在您已有结果的情况下使用此方法

为此,您可以查看
cursor.description

它应包括以下内容:

name
table_oid
attribute_number
data_type_oid
data_type_size
type_modifier
format_code