【问题标题】:Sql (Oracle) insert --column not allowed here [duplicate]Sql(Oracle)插入--此处不允许列[重复]
【发布时间】:2018-05-17 13:47:20
【问题描述】:

Sql 使用 ' ' 包含需要插入的值。

如果需要插入'-->例如:G'day

Insert into words values ("G'day", "Yes"," Nice to meet you");

收到错误消息:

  1. 00000 - “此处不允许列”

*原因:
*行动:

这里没有提到原因和行动。

【问题讨论】:

  • 但我得到的答案与以前的答案不同。否则,我用谷歌搜索它,找不到它。另外,我用不同的“问题”标题表达。

标签: sql oracle


【解决方案1】:

Text literals are enclosed in single quotes,不是双引号;您的所有值都被解释为标识符,上下文意味着它们被视为列标识符(名称),因此出现错误。

所以简短的回答是将双引号改为单引号:

Insert into words values ('G'day', 'Yes',' Nice to meet you');

但由于您的值实际上包含单引号,因此您需要通过将它们加倍来转义它们:

Insert into words values ('G''day', 'Yes',' Nice to meet you');

或使用替代引用机制(在上面链接的文档中描述),使用不会出现在实际文本中的分隔符,例如:

Insert into words values (q'[G'day]', 'Yes',' Nice to meet you');

【讨论】:

  • 谢谢!这解决了我的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-15
  • 2013-06-07
  • 1970-01-01
  • 2020-03-31
  • 1970-01-01
  • 2021-12-20
相关资源
最近更新 更多