zoukankan      html  css  js  c++  java
  • 表字段出现oracle sql语句关键字时

    【现象】:在想一个表中插入数据时,老是报出语法错误。

    例如:insert into acc.t_rpt_column_info (COLUMN_ID, TABLE_ID, COLUMN_NAME, order, POSITION, DATA_TYPE, DATA_TYPE_DESC, DICTIONARY_TYPE_ID, CONS_RULE, CONS_DESC, TXT_ID, TXT_COLUMN_ID, IS_SHOW, TAG_TYPE, CAN_MODIFY, HAS_INNER_TABLE, LOG_COLUMN_ID, IS_ENABLED, CAN_INPUT)

    values ('ACTIONTYPE', 't_base_account', '操作类型', 1, '01', 's,1,1', '[操作类型]不能为空且必须在字典表中有对照。', 'ACTIONTYPE', '', '必输项', 48, 1, '1', '3', '1', '0', 'column18', '1', '1');

    oracle sql语法中表字段名字是不允许出现oracle保留的关键字,如:select,from,where,and,or,order,group,by 等。如果想要使用关键字可以加“”;

    测试:

    SQL> create table t1 (order number,group varchar2(10));

    create table t1 (order number,group varchar2(10))

                     *

    ERROR at line 1:

    ORA-00904: : invalid identifier

    SQL> create table t1 ("order" number,"group" varchar2(10));

    Table created.

    SQL> desc t1;

    Name                                             Null?    Type

    ----------------------------------------- -------- ----------------------------

    order                                                         NUMBER

    group                                                        VARCHAR2(10)

    SQL> insert into t1 (order,group) values (1,test);

    insert into t1 (order,group) values (1, 'test')

                    *

    ERROR at line 1:

    ORA-00928: missing SELECT keyword

    SQL> insert into t1  values (1,'test');

    1 row created.

    SQL> insert into t1 ("order","group") values (2,'test2');

    1 row created.

    SQL> select * from t1;

         order group

    ---------- ----------

              1 test

              2 test2

    这样的表是不是造成很多麻烦啊?

    建议表中的字段不要使用oracle保留的关键字。

    要想知道oracle保留了哪些关键字,或者想知道使用的关键字是不是oracle保留的,很简单:

    select * from v$reserved_words

    select * from v$reserved_words where keyword = upper('keyword')

    还有,存储过程中定义的变量名字不要和表中的字段名一样。如果这样,存储过程编译是可以通过的。但是进入表中的数据不对,这样的错误很难排查的。

  • 相关阅读:
    IE9 Beta首则演示视频泄露 狼人:
    浅析网页界面设计——首页设计 狼人:
    需警惕CSS3属性的书写顺序 狼人:
    IE9 Beta与四大浏览器基准测试对比 狼人:
    Ubuntu 9.04将在10月23日停止更新服务和技术支持 狼人:
    IE9对CSS3的支持情况概述 狼人:
    ASP.NET惊爆新安全漏洞 攻击者可访问任意文件 狼人:
    Rails3之父Yehuda离开Engine Yard投奔HTML5 狼人:
    实用HTML,CSS和JavaScript速查表 狼人:
    20个学习CSS的绝佳网站——让你从入门到精通 狼人:
  • 原文地址:https://www.cnblogs.com/AlbertCQY/p/2989764.html
Copyright © 2011-2022 走看看