如何使用系统目录视图

时间:2016-05-15 11:24:49

标签: sql database oracle

我的任务是查找关系表的名称及其属性的名称,属性的数据类型,NULL / NOT NULL约束以及我的帐户拥有的所有表的列ID。我该怎么做呢? 我试过了,

 SELECT * FROM information_schema.SCHEMATA S;

但得到了

ERROR at line 1:
ORA-00942: table or view does not exist

也试过

SELECT table_name,
 column_name,
 data_type,
 data_length "LENGTH",
 data_precision "PRECISION",
FROM   user_tab_columns WHERE  table_name = 'PART'
ORDER BY user_tab_columns.table_name, column_name;
FROM   user_tab_columns WHERE  table_name = 'PART'
*
ERROR at line 6:
ORA-00936: missing expression

任何人都可以告诉我该怎么办?

2 个答案:

答案 0 :(得分:0)

请尝试

SELECT * 
      FROM information_schema.columns

答案 1 :(得分:0)

你的第二个表述基本上是正确的。您的错误是因为FROM之前的逗号:

SELECT table_name, column_name, data_type, data_length as "LENGTH",
       data_precision as "PRECISION"
------------------------------------^
FROM user_tab_columns
WHERE table_name = 'PART'
ORDER BY table_name, column_name;

INFORMATION_SCHEMA视图是许多数据库中可用元数据的ANSI标准视图。但是,甲骨文(还没?)支持它们。因此,您需要使用Oracle的元数据视图和表来实现此目的。