SQL,获取所有自定义数据类型的列表
SQL, Get a list of all the custom data types
我需要使用 sql 命令或 jdbc 在 sql(oracle 和 postgres)中检索所有用户定义数据类型的列表。
现在我只知道如何使用
检索源代码
SELECT text FROM all_source WHERE name='type'
Oracle 几乎所有内容都有数据字典视图。您可以 select 来自
ALL_TYPES and ALL_TYPE_ATTRS。后者显示了每种类型的所有者。
Postgres 没有相同的功能,因此您可以使用来自 here
的查询
SELECT n.nspname as schema, t.typname as type
FROM pg_type t
LEFT JOIN pg_catalog.pg_namespace n ON n.oid = t.typnamespace
WHERE (t.typrelid = 0 OR (SELECT c.relkind = 'c' FROM pg_catalog.pg_class c WHERE c.oid = t.typrelid))
AND NOT EXISTS(SELECT 1 FROM pg_catalog.pg_type el WHERE el.oid = t.typelem AND el.typarray = t.oid)
AND n.nspname NOT IN ('pg_catalog', 'information_schema')
我需要使用 sql 命令或 jdbc 在 sql(oracle 和 postgres)中检索所有用户定义数据类型的列表。 现在我只知道如何使用
检索源代码SELECT text FROM all_source WHERE name='type'
Oracle 几乎所有内容都有数据字典视图。您可以 select 来自 ALL_TYPES and ALL_TYPE_ATTRS。后者显示了每种类型的所有者。
Postgres 没有相同的功能,因此您可以使用来自 here
的查询SELECT n.nspname as schema, t.typname as type
FROM pg_type t
LEFT JOIN pg_catalog.pg_namespace n ON n.oid = t.typnamespace
WHERE (t.typrelid = 0 OR (SELECT c.relkind = 'c' FROM pg_catalog.pg_class c WHERE c.oid = t.typrelid))
AND NOT EXISTS(SELECT 1 FROM pg_catalog.pg_type el WHERE el.oid = t.typelem AND el.typarray = t.oid)
AND n.nspname NOT IN ('pg_catalog', 'information_schema')