关于报错"ORA-01747: user.table.column, table.column 或列说明无效"

简介:

 关于报错"ORA-01747: user.table.column, table.column 或列说明无效"的解决办法

 

 今天在工程中遇到“ORA-01747: user.table.column, table.column 或列说明无效”的报错情况,查了一下是由于数据库列名起的不好引起的,名字用到了数据库的关键字。


如果列很多,又不好确定是哪个列名使用了关键字,以下建议可供参考:


我用以下方法定位


 select *


from v$reserved_words 

where keyword


in(


select COLUMN_NAME


from all_tab_columns


where table_name = '表名大写' and owner='用户名大写'


);


【总结】:


Oracle数据库中创建表的时候,我们不能用有些单词,

因为有些事Oracle自己已经使用了的单词。

比如“row” .如果你使用了,那么就会报错。

怎么判断呢:


我的方法:直接将出错的sql复制到查询中,运行,

也可以直接看颜色,关键字会变色,我就是用了“row”关键字,所以报错了



      本文转自建波李 51CTO博客,原文链接:http://blog.51cto.com/jianboli/1893760,如需转载请自行联系原作者





相关文章
|
索引
不推荐SELECT * FROM table原因
根据非索引查询 :B+树的叶子节点放数据表行数据,叶子节点存放主键,如果想获得行数据信息,则需要再跑到主键索引去拿数据,这叫回表,速度慢。但不管是主键还是非主键索引,他们的叶子结点数据都是有序的。比如在主键索引中,这些数据是根据主键id的大小,从小到大,进行排序的。**1.**根据索引查询 :B+树的父节点放索引数据,速度快,叶子(父)节点会存放完整的行数据西信息。
371 0
|
3月前
|
SQL Oracle 关系型数据库
ALTER TABLE 时的 SQL PRIMARY KEY 约束
【7月更文挑战第24天】ALTER TABLE 时的 SQL PRIMARY KEY 约束。
28 3
|
3月前
|
SQL Oracle 关系型数据库
CREATE TABLE 时的 SQL PRIMARY KEY 约束
【7月更文挑战第24天】CREATE TABLE 时的 SQL PRIMARY KEY 约束。
38 2
|
2月前
|
安全 关系型数据库 数据库
在 Postgres 中使用 Drop Column
【8月更文挑战第11天】
86 0
|
数据库 OceanBase
使用 `INSERT INTO table_name SELECT * FROM table_name` 这种方式
使用 `INSERT INTO table_name SELECT * FROM table_name` 这种方式
72 1
|
数据库 OceanBase
INSERT INTO table_name SELECT * FROM table_name
INSERT INTO table_name SELECT * FROM table_name
53 1
|
SQL 关系型数据库 MySQL
【已解决】SELECT list is not in GROUP BY clause and contains nonaggregated column
MySQL5.7.5后only_full_group_by成为sql_mode的默认选项之一,这可能导致一些sql语句失效。
258 0
|
关系型数据库 MySQL 索引
浅谈create table as 和 insert into select 复制表遇到的问题
之前做一次表压缩测试,在准备原表时需要数据量比较大的表,通过insert into select 的方式将几个表的数据复制到一个表,产生的一些问题~
3229 0
|
关系型数据库 MySQL
|
Web App开发 前端开发 搜索推荐