我想描述一个在 Netezza 上保存的表(这样可以看到变量格式、distribute on 子句等)。我知道这是可能的(本机)使用
\d <tablename>
但是我使用 SAS 连接(通过 ODBC)。
这可能使用 SAS 9.1.3 代码吗?
您将需要访问包含有关表的信息的系统视图。您不能在一个查询中执行此操作,但您可以使用两个查询来执行此操作。
SELECT attname "Attribute",
datatype "Type",
CASE WHEN attnotnull='t' THEN
'Not Null'
ELSE
'Null'
END "Modifier",
coldefault "Default"
FROM _v_relation_column col_t
cross join _v_datatype dat_t
WHERE dat_t.objid = col_t.atttypid
AND name='<table_name>'
ORDER BY attnum
;
SELECT attname "Distributed on hash"
FROM _v_table_dist_map
INNER JOIN tb_nm t ON tname = tablename
WHERE tablename ='<table_name>'
;
我对你的问题并不完全清楚,但我假设你想用 nzsql 命令描述表。如果是,那么试试这个 nzsql -c "\d table_name"
我不了解 Netezza,但如果您可以使用 SAS/ACCESS 连接到它,那么您应该能够使用带有 SQL Pass-Through 的 DBMS 特定命令。
文档在这里