Sql Oracle中的标识符错误
我编写以下代码来创建表,但每次运行它时,都会出现“无效标识符”错误。无法想出解决方案Sql Oracle中的标识符错误,sql,oracle11g,Sql,Oracle11g,我编写以下代码来创建表,但每次运行它时,都会出现“无效标识符”错误。无法想出解决方案 CREATE TABLE LIPS( PRODUCT_ID NUMBER(6) PRIMARY KEY NOT NULL, PRODUCT_TYPE VARCHAR2(10) NOT NULL, PRODUCT_NAME VARCHAR2(10) NOT NULL, BRAND VARCHAR2(15) NOT NULL, SHADE VARCHAR2(20) NOT N
CREATE TABLE LIPS(
PRODUCT_ID NUMBER(6) PRIMARY KEY NOT NULL,
PRODUCT_TYPE VARCHAR2(10) NOT NULL,
PRODUCT_NAME VARCHAR2(10) NOT NULL,
BRAND VARCHAR2(15) NOT NULL,
SHADE VARCHAR2(20) NOT NULL,
SIZE VARCHAR2(10) NOT NULL,
PRICE NUMBER(10) NOT NULL
);
试试这个:
CREATE TABLE "LIPS"(
"PRODUCT_ID" NUMBER(6) PRIMARY KEY NOT NULL,
"PRODUCT_TYPE" VARCHAR2(10) NOT NULL,
"PRODUCT_NAME" VARCHAR2(10) NOT NULL,
"BRAND" VARCHAR2(15) NOT NULL,
"SHADE" VARCHAR2(20) NOT NULL,
"SIZE" VARCHAR2(10) NOT NULL,
"PRICE" NUMBER(10) NOT NULL
);
在我看来,更改列的名称比转义名称要好得多:
CREATE TABLE LIPS (
PRODUCT_ID NUMBER(6) PRIMARY KEY NOT NULL,
PRODUCT_TYPE VARCHAR2(10) NOT NULL,
PRODUCT_NAME VARCHAR2(10) NOT NULL,
BRAND VARCHAR2(15) NOT NULL,
SHADE VARCHAR2(20) NOT NULL,
PRODUCT_SIZE VARCHAR2(10) NOT NULL,
PRICE NUMBER(10) NOT NULL
);
这很重要,因为
SIZE
在Oracle中是一个保留字,因此您必须引用名为该词的字段。感谢@Donnie,您击败了我,为Codo的评论找到了答案。:)是的,你可以。或者最好使用另一个名称,如product_size,这样就不需要引用。对于引号,您必须在每个查询中使用引号,并且始终用大写字母书写名称。感谢help@TanzidKhan如果您想遵循最佳实践,请不要让列名与任何保留字(如日期、大小等)相同。。。。等