SQL> select table_name from user_tables;TABLE_NAME ------------------------------ ELECTOTAL VAR_TABLE VAR_TABLE_TEMP gc_dfss gc_dfys ls_jg_dfss ls_jg_dfys yw_yhjbqk ------------------------------------------------------ SQL> select * from electotal;未选定行SQL> select * from "electotal"; select * from "electotal" * ERROR 位于第 1 行: ORA-00942: 表或视图不存在SQL> select * from "ELECTOTAL";未选定行---------------------------------------------------------SQL> select * from gc_dfss; select * from gc_dfss * ERROR 位于第 1 行: ORA-00942: 表或视图不存在 SQL> select * from gc_dfss where 1 = 0; select * from gc_dfss where 1 = 0 * ERROR 位于第 1 行: ORA-00942: 表或视图不存在SQL> select * from "gc_dfss" where 1 = 0 SQL> /未选定行
SQL> create table "aa"(a number);表已创建。已用时间: 00: 00: 01.03 SQL> select * from tab;TNAME TABTYPE CLUSTERID ------------------------------ ------- ---------- A TABLE ARCH TABLE ARCH_1 TABLE ARCH_LOG TABLE ARCH_LOG_1 TABLE B TABLE BONUS TABLE C TABLE DEPT TABLE EMP TABLE LXJ TABLE NESTED_PREV_ADDRESS TABLE PLAN_TABLE TABLE SALGRADE TABLE T TABLE ZH_EMP VIEW Z_EMP TABLE Z_EMP_1 TABLE aa TABLE已选择19行。已用时间: 00: 00: 00.02 SQL> desc "aa"; 名称 是否为空? 类型 ----------------------------------------- -------- ---------------------------- A NUMBERSQL>
楼主贴出来的代码没有问题啊。oracle数据字典里存放表名、字段名、对象名...都是以大写保存的。(除非你在建这些对象时用“”强制区分大小写);在查询时,如果没加“”,oracle会自动将其转换成大写....从你的查询select table_name from user_tables;可以看出当前模式里,后5个表都是有小写字母的,说明在建表时他们是用“”强制区分大小写的表,所以在查询时要用“”强制区分大小写,以免表名被自动转换成大写去执行。
------------------------------ ------- ----------
A TABLE
B TABLE
MyTemp TABLE
PROCEDURE_TABLE TABLE
SONG TABLE
T SYNONYM
TEMP_TABLE TABLE已选择7行。SQL> select * from mytemp;
select * from mytemp
*
ERROR 位于第 1 行:
ORA-00942: 表或视图不存在
SQL> select * from "MyTemp";未选定行
加“”的实际意思就是要区别大小写。
因为windows本身不区分大小写。所以oracle需要用”“来做到这一点。
因为oracle在创建表的时候(如果没有用双引号)自动将表名改写成大写字母保存到系统表中,索引表名中含有小写字母时,必须使用双引号。下划线不受影响
名称 空? 类型
----------------------------------------------------- -------- -----------
F1 NUMBER(38)
f2 NUMBER(38)
没问题啊,是不是你其他地方错了,把代码贴出来,看看到底咋回事
------------------------------
ELECTOTAL
VAR_TABLE
VAR_TABLE_TEMP
gc_dfss
gc_dfys
ls_jg_dfss
ls_jg_dfys
yw_yhjbqk
------------------------------------------------------
SQL> select * from electotal;未选定行SQL> select * from "electotal";
select * from "electotal"
*
ERROR 位于第 1 行:
ORA-00942: 表或视图不存在SQL> select * from "ELECTOTAL";未选定行---------------------------------------------------------SQL> select * from gc_dfss;
select * from gc_dfss
*
ERROR 位于第 1 行:
ORA-00942: 表或视图不存在
SQL> select * from gc_dfss where 1 = 0;
select * from gc_dfss where 1 = 0
*
ERROR 位于第 1 行:
ORA-00942: 表或视图不存在SQL> select * from "gc_dfss" where 1 = 0
SQL> /未选定行
SQL> select * from tab;TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
A TABLE
ARCH TABLE
ARCH_1 TABLE
ARCH_LOG TABLE
ARCH_LOG_1 TABLE
B TABLE
BONUS TABLE
C TABLE
DEPT TABLE
EMP TABLE
LXJ TABLE
NESTED_PREV_ADDRESS TABLE
PLAN_TABLE TABLE
SALGRADE TABLE
T TABLE
ZH_EMP VIEW
Z_EMP TABLE
Z_EMP_1 TABLE
aa TABLE已选择19行。已用时间: 00: 00: 00.02
SQL> desc "aa";
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
A NUMBERSQL>