有一张表A,里面有两个字段,a,b如果用select * form A是可以查询出来数据的,
但如果select a,b form A 则报列名无效错误!不知哪位大侠可曾遇到这样的错误,求解!拜谢!
但如果select a,b form A 则报列名无效错误!不知哪位大侠可曾遇到这样的错误,求解!拜谢!
解决方案 »
- 如何执行表中的sql
- 关于for循环
- 跪求一句sql,数据库高手请帮忙看看
- ORACLE存储过程循环问题,请高人指点。
- 9i的rman库能备份oracle817的库吗,为什么我register会报错? 急急!!!!!!!!!!
- 求VB访问ORACLE地连接方法!!!
- 求一个function
- 请各位高手进来,解决马上给分.一个删除重复数据的问题.
- SQL> startup mountORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME
- 急!!oracle中同一字段如何把字母和汉字分开来在分别放到两个字段里,如下面
- 高手请教,批量美化存储过程/包?
- 64位 Oracle Application Server(OAS)在哪下载,请大虾们帮忙
scott@TBWORA> create table a("a" varchar2(20), "b" varchar2(20));表已创建。scott@TBWORA> desc a;
名称 是否为空? 类型
----------------------------------------------------------------- -------- --------------------------------------------
a VARCHAR2(20)
b VARCHAR2(20)scott@TBWORA> insert into a("a","b") values('a01','b01');已创建 1 行。scott@TBWORA> select * from a;a b
---------------------------------------- ----------------------------------------
a01 b01scott@TBWORA> select a, b from a;
select a, b from a
*
第 1 行出现错误:
ORA-00904: "B": 标识符无效
scott@TBWORA> select "a", "b" from a;a b
---------------------------------------- ----------------------------------------
a01 b01
重复的,我的数据库版本是10g
scott@TBWORA> l
1 select table_name, column_name, column_id
2 from user_tab_columns
3 where table_name='A'
4* order by column_id
scott@TBWORA> /TABLE_NAME COLUMN_NAME COLUMN_ID
------------------------------ ------------------------------ ----------
A a 1
A b 2scott@TBWORA> l
1 select table_name, column_name, column_id
2 from user_tab_columns
3 where table_name='A'
4* order by column_id
scott@TBWORA> select a, b from a;
select a, b from a
*
第 1 行出现错误:
ORA-00904: "B": 标识符无效
scott@TBWORA> select a, "B" from a;
select a, "B" from a
*
第 1 行出现错误:
ORA-00904: "B": 标识符无效
scott@TBWORA> select a, "b" from a;
select a, "b" from a
*
第 1 行出现错误:
ORA-00904: "A": 标识符无效
scott@TBWORA> select "a", "b" from a;a b
---------------------------------------- ----------------------------------------
a01 b01
大家说出来 肯定都是交流,你的代码我非常认真地看了,其实我昨天都已经在字段两端加引号了,
的确不报错,但查询出来的数据都是错的,比如:我的数据是
a b
1 2
3 4
但如果我用 select "a","b" 去查询的话,
出来的结果是:
a b
A B
A B
您的辛勤回复,我感激不尽!我尊重您的劳动成果,但也请您尊重别人!
他在指导你如何去发现问题,你也看到情况了,你创建表的时候,对于字段你使用"",这样会直接把你字段以小写形式保存到数据字典里,你 select a,b 的时候,oracle 会将字段隐式转换为大写然后在数据字典里查找,因为你的列名是以小写形式保存的,所以,会找不到列名,就出错了
问题解决了,是建表的时候,里面包含了关键字。COLUMN
谢谢大家的回复!
select "a"写成了 select 'a'
当然出来就是a了