“ORA-01747: user.table.column, table.column 或列说明无效” 的解决方案
此问题的原因是因为表的列名称使用了Oracle声明的关键字,列名起的不好引起的。
如果列很多,又不好确定是哪个列名使用了关键字,以下建议可供参考:
select * from v$reserved_words where keyword
in(
select COLUMN_NAME
from all_tab_columns
where table_name = 'HP_FFS' and owner='用户名大写'
);
除了与oracle关键字段冲突错误外(select * from v$reserved_words;--查询oracle数据库关键字),还有一种可能是po映射时的字段是否与数据库中的字段匹配,包括检查有外键关联所关联的PO中的各个字段映射是否正确。
此外,也有可能是SQL语句查询插入的列名的最后多了一个“,”逗号等原因,也会引起这种错误。
一些具体的解决方案建议:
情形1
1.创建表是不使用ORACLE的关键字作为表字段名。
2.oracle 表字段关键字的查询 : 把字段名加上双引号,并且严格区分大小写。
建议采用第一种方法解决,减少出现其他问题的几率。
情形2
1、首先我们要确认哪些字符串是Oracle的关键字,具体可通过Oracle提供的V$RESERVED_WORDS
2、对历史遗留系统的处理
- 考虑修改表的列名,风险较大
- 修改特定查询语句
3、验证
通过验证得出结论:
- 在查询列中使用双引号
- 要注意列的大小写
CREATE TABLE WYC_TEST(CODE VARCHAR2(20), ADDR VARCHAR2(40));
INSERT INTO WYC_TEST(CODE,ADDR) VALUES('00', 'ADDR00');
ALTER TABLE WYC_TEST ADD "ROW" VARCHAR2(20);
ALTER TABLE WYC_TEST ADD "Row" VARCHAR2(20);
ALTER TABLE WYC_TEST ADD "RoW" VARCHAR2(30);
INSERT INTO WYC_TEST(CODE,ADDR, "ROW") VALUES('00', 'ADDR00', 'abc');
UPDATE WYC_TEST SET "ROW" = WYC_TEST.ADDR || '_ROW', "Row"=WYC_TEST.ADDR || '_Row', "RoW"=WYC_TEST.ADDR || '_RoW'
SELECT * FROM WYC_TEST;
参考文章:
1. 关于报错“ORA-01747: user.table.column, table.column 或列说明无效”的解决办法
2. ORA_01747:User.table.column 或列说明无效
3. ORA-01747: user.table.column, table.column 或列说明无效n, table.column 或列
“ORA-01747: user.table.column, table.column 或列说明无效” 的解决方案的更多相关文章
- ORA-01747: user.table.column, table.column 或列说明无效
Oracle.DataAccess.Client.OracleException ORA-01747: user.table.column, table.column 或列说明无效 原因1: 查了一下 ...
- user.table.column, table.column 或列说明无效
Oracle统计采用别名出错(user.table.column, table.column 或列说明无效) >>>>>>>>>>>& ...
- dashDB - Creating a table with CLOB column type
In order to create a table with clob column type, the table has to be created with "ORGANIZE BY ...
- SQLAlchemy Table(表)类方式 - Table类和Column类
Table 构造方法 Table(name, metadata[, *column_list][, **kwargs]) 参数说明: name 表名 metadata 元数据对象 column_lis ...
- 关于“ORA-01747: user.table.column, table.column 或列说明无效”的报错。
今天在工程中遇到“ORA-01747: user.table.column, table.column 或列说明无效”的报错情况,查了一下是由于数据库列名起的不好引起的,名字用到了数据库的关键字.
- SpringBoot+MyBatis中自动根据@Table注解和@Column注解生成增删改查逻辑
习惯使用jpa操作对象的方式,现在用mybatis有点不习惯. 其实是懒得写SQL,增删改查那么简单的事情你帮我做了呗,mybatis:NO. 没办法,自己搞喽! 这里主要是实现了通过代码自动生成my ...
- [转]jQuery: get table column/row index remove table column (by column number)
本文转自:http://www.xinotes.org/notes/note/1087/ <!DOCTYPE html><html><head> <title ...
- 修改TABLE中的Column的属性
删除主键名 这个主键名并不是列名,而是主键约束的名字,如果当时设置主键约束时没有制定约束的名字 设置主键的语句:ALTER TABLE P add constraint pk PRIMARY KEY ...
- sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) Cannot add a NOT NULL column with default value NULL [SQL: u'ALTER TABLE address_scopes ADD COLUMN ip_version INTEGER NOT NULL']
root@hett-virtual-machine:~# su -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neu ...
随机推荐
- 51nod 1265 四点共面——计算几何
题目链接:http://www.51nod.com/Challenge/Problem.html#!#problemId=1265 以其中某一点向其它三点连向量,若四点共面,这三个向量定义的平行六面体 ...
- mysqldump 备份导出数据排除某张表或多张表
可以使用--ignore-table=dbname.tablename 忽略一张表 /usr/bin/mysqldump --set-gtid-purged=OFF -h127.0.0.1 -uroo ...
- CSS3-::selection
“::selection”只能设置两个属性,一个就是background,另一个就是color属性,设置其他属性是没有任何效果的. ::selection使用语法: /*Webkit,Opera9.5 ...
- laravel富文本编辑和图片上传
---恢复内容开始--- 首先先找到一个适合的编辑器是胜利的一步,选择wangEditor这个编辑器 地址:http://www.wangeditor.com/ 然后选择下载,我是通过网上学习的,所以 ...
- day14 迭代器,生成器,函数的递归调用
1.什么是迭代器 迭代是一个重复的过程,但是每次重复都是基于上一次重复的结果而继续 迭代取值的工具 2.为什么要用迭代器 迭代器的优点 ①不依赖于索引取值 ②更节省内存 缺点: 1.不如按 ...
- Ajax四步操作
第一步得到(XMLHttpRequest)function creatXMLHttpRequest(){ try{ return new XMLHttpRequest(); } catch(e){ t ...
- Codeforces C. Sonya and Problem Wihtout a Legend(DP)
Description Sonya was unable to think of a story for this problem, so here comes the formal descript ...
- poj 1502
MPI Maelstrom Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 12087 Accepted: 7464 De ...
- js 百度云搜索框
// ==UserScript==// @name 百度云插件+APIKey// @namespace // @version 5.0.2.1// @description 在百度云网盘的页面添加一个 ...
- java 枚举类型的使用
应用 http://blog.csdn.net/qq_27093465/article/details/52180865 原理 http://blog.csdn.net/javazejian/art ...