SQL:如何插入值类型为的列

SQL:如何插入值类型为的列,sql,oracle,Sql,Oracle,当我尝试插入一个值类型为的列时,我得到下面的错误 SQL错误:ORA-00904:“TYPE”:无效标识符,因为TYPE是保留关键字 但是,我看到这个列已经有了类型值。怎么会有人插进去的?如果我很想插入列值作为类型,有什么办法吗 这是我的insert语句-insert到可处理的值中(LB,Type,DI,Y,1,I,006,1,Type)您遇到了一个保留字,因此您需要双引号: insert into customers (1, "TABLE"); 请注意,它不是: insert into cu

当我尝试插入一个值类型为的列时,我得到下面的错误

SQL错误:ORA-00904:“TYPE”:无效标识符
,因为TYPE是保留关键字

但是,我看到这个列已经有了类型值。怎么会有人插进去的?如果我很想插入列值作为类型,有什么办法吗


这是我的insert语句-
insert到可处理的值中(LB,Type,DI,Y,1,I,006,1,Type)

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

insert into customers (1, "TABLE");
请注意,它不是:

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

类型是SQL中的关键字。 如果您想忽略它是一个关键字并插入它,您可以将该类型括在方括号中:

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

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

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


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

insert into processtable values('LB','Type','DI','Y','1','I','006',1,'Type');
插入到processtable值中(LB,Type,DI,Y,1,I,006,1,Type)

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

insert into processtable values('LB','Type','DI','Y',1,'I','006',1,'Type');
不得引用数字

有关更多详细信息,请阅读《Oracle手册》中“Oracle SQL的基本元素”一章中的部分。事实上,我强烈建议您阅读完整的一章

术语文字和常量值是同义词,指的是固定的数据值。例如,
'JACK'
'blueisland'
'101'
都是字符文字;
5001
是数字文字。字符文字用单引号括起来,以便Oracle能够将其与模式ob区分开来名字


在insert语句中显式列出列也是一种很好的编码方式:

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

为了获得最佳插入效果,您可以按如下方式使用此选项并成功插入:-


插入到processtable值('LB'、'Type'、'DI'、'Y',1、'I',006,1、'Type')

请发布您的代码。使用该标识符名称有什么具体原因吗?我认为与保留字同名的标识符可能会让人困惑。使用双引号:“Type”当我运行SELECT语句时,我应该使用“doubleqoutes”“或‘singleqoutes’对吗?字符串文本需要单引号。双引号表示标识符。这两条语句都无效,因为它们缺少
values
子句。处理保留字时只需使用双引号。
[type]
在(标准)SQL中是无效标识符。要使用保留字,您需要使用双引号
“TYPE”
,感谢您的澄清。需要明确的是,方括号适用于某些SQL风格,包括微软的t-SQL。但是双引号的解决方案似乎是标准的。双引号是在SQL标准中定义的(方括号在Oracle中不起作用-这是一个问题),数字不能被引用。?我以前也给数字加引号。我能够成功地插入。给数字加引号有问题吗?(与此问题无关)@Crazy2crack如果对数字使用单引号,则Oracle(或任何其他DBMS)正在执行隐式数据类型转换,这可能会或可能不会按照您希望的方式工作。在where子句中使用,例如
where foo='42'
,这可能导致DBMS不在列上使用索引。最好始终使用正确的文字类型以避免混淆。感谢您提供的信息:)
insert into processtable 
  (col1,  col2,  col3, col4, col5, col6, col7,  col8, col9)
values 
  ('LB', 'Type', 'DI', 'Y',  1,    'I',  '006', 1,    'Type');