我是SQL新手,最近安装了Oracle 11g。我在从user_tables
选择所有表格时阅读了帖子here。我正在尝试选择一个特定的表格,并且后面的一些建议似乎不起作用。
以下执行正常并返回所有可用的表,包括名为faculty_t
的表:
select * from user_tables;
select * from dba_tables;
select * from all_tables;
desc faculty_t;
但是当我执行以下操作时出现错误:
select * from user_tables where table_name = FACULTY_T;
第一组陈述确认我有一个名为faculty_t
的表。但是,尝试从user_tables
,all_tables
或dba_tables
中选择此表似乎不适合我。错误消息的内容如下:
ORA-00904: "FACULTY_T": invalid identifier
00904. 00000 - "%s: invalid identifier"
*Cause:
*Action:
Error at Line: 208 Column: 8
有什么想法?谢谢!
答案 0 :(得分:3)
SQL中的字符串文字包含在'
中。所以:
select * from user_tables where table_name = 'FACULTY_T';
当您执行desc faculty_t
时,SQL引擎知道该位置需要一个表名(语法需要一个表名)。但是在您的select查询中,sql只是查找碰巧具有字符串数据类型的列的值,因此您需要使用'
作为字符串文字。