使用oracle发生标识符无效解决办法

 

标识符无效

使用oracle时,发生标识符无效解决办法

1、一直以来写sql语句发生标识符无效一般多为列名写错导致

2、也有许多情况是使用了关键字作为了列名

但是今天发生了一个意外的情况,在oracle数据库建了一张表,创建成功后,发现数据表的列名是小写的,想了想看过的书里面说过oracle会自动将小写转换成大写,于是就选择性忽略了.

由于oracle会自动将我们写的SQL语句列名自动转为大写,所以平时写SQL时,采用全小写方式居多.

但是今天我却收获到了一个错误信息

标识符无效

检查了好几遍,都没有发现列名有错误

尝试了10+min进行解决,还是搞不定,百度了之后,得到的结果都是列名不一致导致,但是我检查了好几遍,都没有发现列名错误

结合之前有了解过PostgreSQL的怪异问题

于是将SQL语句中的列名加上双引号,成功查询出数据

得出结论:

racle表字段名 SQL语句中的列名 正确性
大写 SQL语句中大写 正确
大写 SQL语句中小写 正确(会自动将小写转为大写)
大写 SQL语句中小写(被引号包裹) 错误
小写 SQL语句中大写 错误
小写 SQL语句中小写 错误(会自动将小写转为大写)
小写 SQL语句中小写(被引号包裹) 正确(不进行大小写转换)`

所以当oracle数据表字段为小写时,必须使用引号("")将SQL中的列名包裹才能正确执行SQL语句.

相关阅读

ORA-12154: TNS: 无法解析指定的连接标识符

前几天我在笔记本电脑上用plsql连接oracle数据库时提示ORA-12154: TNS: 无法解析指定的连接标识符,遇到这种问题我就用常规解决方

oracle中的greatest 函数和 least函数

greatest (max(one),max(two),max(three))求多列的最大值,oracle中的greatest 函数 已知表TB的数据如下 SQL> select * from tb; 

Oracle中字符串截取常用方法总结

substr 函数:截取字符串 语法:SUBSTR(string,start, [length]) string:表示源字符串,即要截取的字符串。 start:开始位置,从1开始查找

oracle如何创建用户分配权限

打开电脑左下角开始菜单,在下方搜索蓝输入【CMD】 进入CMD命令行,输入【conn / as sysdba】进入oralce控制台 进入控

powerdesign建Oracle数据库设置某个属性值自增

两种方式,一种是通过执行PowerDesign生成的触发器语句,一种是通过SqlDeveloper内创建触发器,但是两种方法使用之前都需要创建序列seq

发表评论