标识符无效
使用oracle时,发生标识符无效解决办法
1、一直以来写sql语句发生标识符无效一般多为列名写错
导致
2、也有许多情况是使用了关键字作为了列名
但是今天发生了一个意外的情况,在oracle数据库建了一张表,创建成功后,发现数据表的列名是小写的,想了想看过的书里面说过oracle会自动将小写转换成大写,于是就选择性忽略了.
由于oracle会自动将我们写的SQL语句列名自动转为大写,所以平时写SQL时,采用全小写方式居多.
但是今天我却收获到了一个错误信息
标识符无效
检查了好几遍,都没有发现列名有错误
尝试了10+min进行解决,还是搞不定,百度了之后,得到的结果都是列名不一致导致,但是我检查了好几遍,都没有发现列名错误
结合之前有了解过PostgreSQL的怪异问题
于是将SQL语句中的列名加上双引号,成功查询出数据
得出结论:
racle表字段名 |
SQL语句中的列名 |
正确性 |
---|---|---|
大写 | SQL语句中大写 | 正确 |
大写 | SQL语句中小写 | 正确(会自动将小写转为大写) |
大写 | SQL语句中小写(被引号包裹) | 错误 |
小写 | SQL语句中大写 | 错误 |
小写 | SQL语句中小写 | 错误(会自动将小写转为大写) |
小写 | SQL语句中小写(被引号包裹) | 正确(不进行大小写转换)` |
所以当oracle数据表字段为小写时,必须使用引号("")将SQL中的列名包裹才能正确执行SQL语句.
相关阅读
前几天我在笔记本电脑上用plsql连接oracle数据库时提示ORA-12154: TNS: 无法解析指定的连接标识符,遇到这种问题我就用常规解决方
greatest (max(one),max(two),max(three))求多列的最大值,oracle中的greatest 函数 已知表TB的数据如下 SQL> select * from tb;
substr 函数:截取字符串 语法:SUBSTR(string,start, [length]) string:表示源字符串,即要截取的字符串。 start:开始位置,从1开始查找
打开电脑左下角开始菜单,在下方搜索蓝输入【CMD】 进入CMD命令行,输入【conn / as sysdba】进入oralce控制台 进入控
powerdesign建Oracle数据库设置某个属性值自增
两种方式,一种是通过执行PowerDesign生成的触发器语句,一种是通过SqlDeveloper内创建触发器,但是两种方法使用之前都需要创建序列seq