SQL:如何插入值为TYPE的列

时间:2015-07-27 07:05:34

标签: sql oracle

当我尝试插入值为TYPE的列时,我得到以下错误

SQL Error: ORA-00904: "TYPE": invalid identifier因为TYPE是保留关键字。

但是,我看到此列已经将值设置为TYPE。怎么有人可以插入它?如果我想严格插入列值,因为TYPE有什么办法吗?

这是我的插入声明 - insert into processtable values(LB,Type,DI,Y,1,I,006,1,Type);

6 个答案:

答案 0 :(得分:0)

您遇到了保留字,因此需要双引号

insert into customers (1, "TABLE");

请注意,它不是:

insert into customers (1, 'TABLE');
像往常一样。

答案 1 :(得分:0)

对于选择操作,您可以使用[](方括号)

要成功插入,请使用反引号(`)或双引号(“)

insert into processtable values(LB,'Type',DI,Y,1,I,006,1,'Type');

答案 2 :(得分:0)

在单引号中使用字符串值,例如

insert into processtable values('LB','Type','DI','Y','1','I','006',1,'Type');

答案 3 :(得分:0)

  

插入过程值(LB,Type,DI,Y,1,I,006,1,Type);

values部分列出要存储在新行中的值(双关语)。字符串值需要放在单引号中:

insert into processtable values('LB','Type','DI','Y',1,'I','006',1,'Type');

不得引用数字。

有关详细信息,请阅读章节" Oracle SQL的基本元素"中的"Literals"部分。在Oracle手册中。事实上,我强烈建议你阅读完整的章节。

  

术语字面值和常量值是同义词,指的是固定数据值。例如,'JACK''BLUE ISLAND''101'都是字符文字; 5001是一个数字文字。字符文字用单引号括起来,以便Oracle可以将它们与模式对象名称区分开来。

显式列出insert语句中的列是一种很好的编码风格:

insert into processtable 
  (col1,  col2,  col3, col4, col5, col6, col7,  col8, col9)
values 
  ('LB', 'Type', 'DI', 'Y',  1,    'I',  '006', 1,    'Type');

答案 4 :(得分:0)

为了获得最佳插入效果,您可以使用以下内容并获得成功插入: -

插入过程值('LB','Type','DI','Y',1,'I',006,1,'Type')

答案 5 :(得分:-1)

type是SQL中的关键字。 如果你想忽略它是一个关键字并插入它,你可以用方括号括起来:

create table my_table as ([type] varchar(127))