加载中…
个人资料
随心倩影
随心倩影
  • 博客等级:
  • 博客积分:0
  • 博客访问:3,097
  • 关注人气:25
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

ORA_01747:User.table.column 或列说明无效

(2013-04-16 15:19:15)
标签:

字符串

结论

解决方案

关键字

语句

教育

分类: 数据库

ORA_01747:User.table.column或列说明无效

此问题的原因是因为表的列名称使用了Oracle声明的关键字,解决方案:

1、首先我们要确认哪些字符串是Oracle的关键字,具体可通过Oracle提供的V$RESERVED_WORDS

2、对历史遗留系统的处理

  • 考虑修改表的列名,风险较大
  • 修改特定查询语句

3、验证

通过验证得出结论:

  • 在查询列中使用双引号
  • 要注意列的大小写

4、示例

 

CREATE TABLE WYC_TEST(CODE VARCHAR2(20), ADDR VARCHAR2(40));
  1. INSERT INTO WYC_TEST(CODE,ADDR) VALUES('00', 'ADDR00');
  2. ALTER TABLE WYC_TEST ADD "ROW" VARCHAR2(20);
  3. ALTER TABLE WYC_TEST ADD "Row" VARCHAR2(20);
  4. ALTER TABLE WYC_TEST ADD "RoW" VARCHAR2(30);
  5. INSERT INTO WYC_TEST(CODE,ADDR, "ROW") VALUES('00', 'ADDR00', 'abc');
  6. UPDATE WYC_TEST SET "ROW" = WYC_TEST.ADDR || '_ROW', "Row"=WYC_TEST.ADDR || '_Row', "RoW"=WYC_TEST.ADDR || '_RoW'
  7. SELECT * FROM WYC_TEST;

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有