首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

number种字段的where语句一直报错

2013-03-22 
number类字段的where语句一直报错在Oracle SQL Developer运行sql语句一直报错 ORA-00936:missing expressi

number类字段的where语句一直报错
在Oracle SQL Developer运行sql语句一直报错 ORA-00936:missing expression
select * from tpvframe_publication WHERE number=1;
是number类的给值有什么规范?

表结构如下:


CREATE TABLE "PLMWFLOW"."TPVFRAME_PUBLICATION" 
   ("NUMBER" NUMBER NOT NULL ENABLE, 
"ISTOP" VARCHAR2(1 BYTE) NOT NULL ENABLE, 
"DUEDATE" DATE NOT NULL ENABLE, 
"SUBJECT" VARCHAR2(200 BYTE) NOT NULL ENABLE, 
"CONTENT1" VARCHAR2(4000 BYTE) NOT NULL ENABLE, 
"CONTENT2" VARCHAR2(4000 BYTE), 
"PUBLISHDATE" DATE NOT NULL ENABLE, 
 CONSTRAINT "TPVFRAME_PUBLICATION_PK" PRIMARY KEY ("NUMBER")
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "USERS"  ENABLE
   ) SEGMENT CREATION IMMEDIATE 
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "USERS" ;

[解决办法]
用关键字做列名的隐患就在这里。就像你不会用SELECT,FROM,where做列名一样。
改为:
select * from tpvframe_publication WHERE "number"=1;

[解决办法]
select * from tpvframe_publication WHERE "NUMBER"=1;

用关键字做字段名是很2的行为,Oracle里面用""标注字段名是更2的行为,因为它会掩盖第一种行为

热点排行