是否可以通过vertica_python运行\d schema.table_name;
之类的命令?我遇到以下错误,表明它不喜欢前导反斜杠:
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_file但我正在寻找更好的方法。
答案 0 :(得分:0)
只需对系统视图执行查询(active contours)。类似的东西:
select *
from columns
where table_schema = 'MYSCHEMA'
and table_name = 'MYTABLE'
order by column_id
\d
是vsql
命令,而不是服务器端命令。
使用vertica_python
后的另一种可能性是在执行查询后检查光标中的字段。如果您已经有结果集并想知道数据类型,则非常有用。如果你已经有了结果,我可能只会使用这种方法。
为此,您可以查看cursor.description
。
应该有元素:
name
table_oid
attribute_number
data_type_oid
data_type_size
type_modifier
format_code