ORA-00904: "ORDER_ID": invalid identifier

开发的找过来,说刚刚新建的表,往里插入数据的时候报错
SQL> insert into AD_ORDERSHAREDETAIL(sn,order_id) values(1,2);
insert into AD_ORDERSHAREDETAIL(sn,order_id) values(1,2)
                                   *
ERROR at line 1:
ORA-00904: "ORDER_ID": invalid identifier

SQL> insert into AD_ORDERSHAREDETAIL(sn) values(1);
insert into AD_ORDERSHAREDETAIL(sn) values(1)
                                *
ERROR at line 1:
ORA-00904: "SN": invalid identifier

表结构如下:
SQL> desc AD_ORDERSHAREDETAIL;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 sn                                        NOT NULL NUMBER(38)
 order_id                                           NUMBER(10)
 orderitem_id                                       NUMBER(10)
 alliance_id                                        VARCHAR2(32)
 input_time                                         DATE
 pay_time                                           DATE
 user_id                                            NUMBER(10)
 status_id                                          NUMBER(38)
 ip                                                 VARCHAR2(50)
 amount                                             NUMBER(10,2)
 kid                                                VARCHAR2(32)
 rate                                               NUMBER(38)
 amount_divided                                     NUMBER(10,2)
 payway                                             NUMBER(4)
 pcid                                               VARCHAR2(100)
 product_id                                         NUMBER(10)
 product_type                                       NUMBER(38)
 user_group                                         NUMBER(38)
 data_type                                          NUMBER(38)

看到表结构里的字段都是小写,问题就很明朗了,肯定是建表的时候,字段名小写并且用双引号括起来了,
昨天还遇到一个存储过程类似的问题,也是过程名字用小写并加了双引号

查看一下建表SQL:
CREATE TABLE AD_ORDERSHAREDETAIL2
(
  "id"              NUMBER(38)                  NOT NULL,
  "order_id"        NUMBER(10),
  "orderitem_id"    NUMBER(10),
  "alliance_id"     VARCHAR2(32 BYTE),
  "input_time"      DATE,
  "pay_time"        DATE,
  "user_id"         NUMBER(10),
  "status_id"       NUMBER(38),
  "ip"              VARCHAR2(50 BYTE),
  "amount"          NUMBER(10,2),
  "kid"             VARCHAR2(32 BYTE),
  "rate"            NUMBER(38),
  "amount_divided"  NUMBER(10,2),
  "payway"          NUMBER(4),
  "pcid"            VARCHAR2(100 BYTE),
  "product_id"      NUMBER(10),
  "product_type"    NUMBER(38),
  "user_group"      NUMBER(38),
  "data_type"       NUMBER(38)
)
。。。
。。。

虽然说可以在insert的时候把字段也加上双引号,但是这样操作太麻烦,留着也是一个祸害,所以让开发的重新创建一下表,反正也是刚刚新建的表

SQL> insert into AD_ORDERSHAREDETAIL("sn","order_id") values(1,2);

1 row created.

SQL> roll;
Rollback complete.

这种大小写的问题,遇到过好多次了,以后给开发培训的时候,得多提几次了。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23249684/viewspace-1401638/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/23249684/viewspace-1401638/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值