【问题标题】:Oracle 10g : insert statement with date and varchar2 values (ORA-00911 error)Oracle 10g:插入带有日期和 varchar2 值的语句(ORA-00911 错误)
【发布时间】:2012-02-21 07:20:39
【问题描述】:

我在 Oracle 10g 中创建了一个表,并尝试使用插入语句将一些行插入到表中。但我反复收到以下错误:

ORA-00911: invalid character

出现 ORA-00911 错误的插入语句如下:

Insert into WinLossByDate (StatusDate, Status)
        Values (TO_DATE(‘2011-03-01’,‘yyyy-mm-dd’), ‘lose’);

N.B.我的表定义如下

 Name                                      Null?    Type
 ----------------------------------------- -------- -------------

 STATUSDATE                                NOT NULL DATE
 STATUS                                    NOT NULL VARCHAR2(5)

有人可以帮忙看看是什么错误吗?

【问题讨论】:

  • 您使用的是什么应用程序?通常,您会收到此错误,因为您使用的工具不需要分号。
  • 嗨贾斯汀,是的,因为我删除了最后的分号,插入语句已开始成功运行。 Andy Skirrow 提到的另一个更改,我也这样做了,即用 SQL 编辑器引号替换了大括号,因为我从 Word 中复制了引号。顺便说一句,我使用的编辑器是 Oracle 10g。非常感谢,Somnath!
  • @somnathchakrabarti - Oracle 10g 是数据库。编辑器是您用来访问数据库的客户端工具(Oracle SQL*PLUS、Toad、SQL Developer 等)。仅供参考。
  • 但是我使用的是Oracle 10g XE,它带有一个主页,并且有自己的SQL命令工具。我说的 Oracle 10g 就是这个意思。

标签: oracle10g ora-00911


【解决方案1】:

According to the manual 这似乎是一个词法分析器错误(例如,oracle 无法将您的语句分解为标记以便解析它)。

我注意到您示例中的引号是具有左右手边的漂亮引号(即 而不是' - 仔细查看差异)。一些文字处理器这样做是为了使文本看起来更好。尝试将语句的引号部分手动重新输入到纯文本编辑器中,例如记事本或 VIM。

【讨论】:

  • 嗨,安迪,是的,你说得对。我用我正在使用的 SQL 编辑器的引号替换了弯引号(从 Word 复制),在我的例子中是 Oracle 10g。我还删除了最后的分号,这两个更改有效。非常感谢!
猜你喜欢
  • 2023-03-29
  • 2014-07-19
  • 1970-01-01
  • 2021-02-11
  • 1970-01-01
  • 1970-01-01
  • 2018-11-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多