获取表,主键,然后选择一行

时间:2015-08-12 13:40:51

标签: sql oracle select key

扩展上一个问题:我正在使用Oracle数据库。这就是我正在做的事情(或者至少我认为我正在做的事情):

我使用以下命令获取数据库中的所有表:

select table_name from all_tables

然后我使用以下方法获取每个表的所有主键:

SELECT DISTINCT column_name FROM all_cons_columns 
WHERE constraint_name = ( SELECT constraint_name 
FROM all_constraints  WHERE UPPER(table_name) = UPPER('table_name') 
AND CONSTRAINT_TYPE = 'P' and rownum<=1)

注意:我使用了distinct和rownum&lt; = 1,因为有些表似乎不幸有重复的主键(我知道这是一个问题,但我不认为它是手头的主要问题)

两个查询似乎都回归了我想要的东西;当我尝试使用表名和主键选择行时出现问题:

SELECT * FROM table_name WHERE primary_key_column = primary_key_value

根据传递的表和密钥,我会收到各种不同的错误,范围从ORA-00942:表或视图不存在,ORA-00933:SQL命令未正确结束,ORA-00904:&#34 ; PRIMARY_KEY_COLUMN&#34;:无效的标识符。

我知道我做错了什么,但是我对所有这些缺乏经验使得很难弄清楚是什么。

0 个答案:

没有答案