@@ -1275,35 +1275,19 @@ FROM PG_SETTINGS;
12751275
12761276CREATE OR REPLACE VIEW SYS .all_cons_columns AS
12771277SELECT
1278- pg_authid .rolname ::VARCHAR2 (128 ) AS owner, -- 改为表属主
1278+ pg_authid .rolname ::VARCHAR2 (128 ) AS owner, -- table owner
12791279 con .conname ::VARCHAR2 (128 ) AS constraint_name,
12801280 cls .relname ::VARCHAR2 (128 ) AS table_name,
12811281 attr .attname ::VARCHAR2 (4000 ) AS column_name,
1282- pos .pos ::NUMBER AS position,
1283- CASE
1284- WHEN t .typname = ' varchar' THEN ' VARCHAR2'
1285- WHEN t .typname = ' bpchar' THEN ' CHAR'
1286- WHEN t .typname = ' numeric' THEN ' NUMBER'
1287- WHEN t .typname = ' int2' THEN ' NUMBER'
1288- WHEN t .typname = ' int4' THEN ' NUMBER'
1289- WHEN t .typname = ' int8' THEN ' NUMBER'
1290- WHEN t .typname = ' float4' THEN ' FLOAT'
1291- WHEN t .typname = ' float8' THEN ' FLOAT'
1292- WHEN t .typname = ' text' THEN ' CLOB'
1293- WHEN t .typname = ' date' THEN ' DATE'
1294- WHEN t .typname = ' timestamp' THEN ' TIMESTAMP'
1295- WHEN t .typname = ' timestamptz' THEN ' TIMESTAMP WITH TIME ZONE'
1296- ELSE UPPER (t .typname )
1297- END AS data_type
1282+ pos .pos ::NUMBER AS position
12981283FROM
12991284 pg_catalog .pg_constraint con
13001285 JOIN pg_catalog .pg_class cls ON con .conrelid = cls .oid
1301- JOIN pg_catalog .pg_authid ON cls .relowner = pg_authid .oid -- 关联属主
1286+ JOIN pg_catalog .pg_authid ON cls .relowner = pg_authid .oid -- link to table owner
13021287 JOIN pg_catalog .pg_namespace nsp ON cls .relnamespace = nsp .oid
13031288 CROSS JOIN LATERAL unnest(con .conkey ) WITH ORDINALITY AS pos(attnum, pos)
13041289 JOIN pg_catalog .pg_attribute attr ON attr .attrelid = cls .oid
13051290 AND attr .attnum = pos .attnum
1306- JOIN pg_catalog .pg_type t ON attr .atttypid = t .oid
13071291WHERE
13081292 con .contype IN (' p' , ' u' , ' f' , ' c' )
13091293 AND nsp .nspname NOT IN (' pg_catalog' , ' information_schema' , ' pg_toast' )
@@ -1314,4 +1298,5 @@ WHERE
13141298 AND has_table_privilege(cls .oid , ' SELECT' )
13151299ORDER BY
13161300 owner, table_name, constraint_name, position;
1301+
13171302GRANT SELECT ON SYS .all_cons_columns TO PUBLIC;
0 commit comments