oracle 如何解决ORA-00911:无效字符错误?

ds97pgxw  于 2023-01-25  发布在  Oracle
关注(0)|答案(9)|浏览(2489)

我尝试用Toad for oracle执行一个SQLINSERT

INSERT INTO GRAT_ACTIVITY
   (UUID, IP_ADRESS, SEND_MAIL, DATE_CREA, DATE_UPD, CREATOR, CENTER, ETAT, REQUEST)
 VALUES('555-vgd9-pllkd-5513', '172.12.23.130', 'N', SYSDATE, SYSDATE, '1554', 'M18', 'I', 8842);
--COMMIT;

GRAT_ACTIVITY表结构如下:

CREATE TABLE CASH.GRAT_ACTIVITY
(
  UUID       VARCHAR2(64 BYTE) NOT NULL,
  IP_ADRESS  VARCHAR2(15 BYTE),
  SEND_MAIL  VARCHAR2(1 BYTE),
  DATE_CREA  DATE,
  DATE_UPD   DATE,
  CREATOR    VARCHAR2(4 BYTE),
  CENTER     VARCHAR2(4 BYTE),
  ETAT       VARCHAR2(1 BYTE),
  REQUEST    NUMBER
)

错误消息:
ORA-00911:无效字符
原因:标识符不能以字母和数字以外的任何ASCII字符开头。$#_也允许出现在第一个字符之后。用双引号括起来的标识符可以包含双引号以外的任何字符。替代引号(q'# ...#')不能使用空格、制表符或回车符作为分隔符。有关所有其他上下文,请参阅SQL Language Reference Manual。
措施:无
我该怎么解决呢?

pbgvytdp

pbgvytdp1#

您正在执行的语句有效。该错误似乎表示Toad将尾随分号作为命令的一部分包含在内,这在将其作为语句的一部分包含在内时确实会导致ORA-00911-因为它是客户端中的语句分隔符,而不是语句本身的一部分。
可能是以下注解掉的行让Toad(as described here)感到困惑;也可能是因为您试图将所有内容作为单个语句运行,在这种情况下,您可以尝试使用run script命令(F9)而不是run语句(F5)。
仅仅删除注解掉的行就可以解决这个问题,但是如果您在实际提交中也看到了这个问题,那么很可能是您使用了错误的方法来运行语句。
关于Toad如何解析注解on this related question中的分号,还有更多信息,但我对Toad不够熟悉,无法详细介绍。

svmlkihl

svmlkihl2#

删除分号(;)、倒勾号('')等

3xiyfsfu

3xiyfsfu3#

删除分号(;).
在oracle中,当你直接在数据库上运行查询时,你可以使用分号。但是当你使用java来运行oracle查询时,你必须删除末尾的分号。

ezykj2lf

ezykj2lf4#

如果在列或表的名称中使用了除$、_和#以外的特殊字符,则必须用双引号将名称括起来。Link

fivyi3re

fivyi3re5#

我使用的是执行Oracle SQL的第三方程序,遇到了此错误。在SELECT语句之前,我有一些包含特殊字符的注解。删除注解解决了此问题。

qrjkbowd

qrjkbowd6#

我最近遇到了同样的事情。这只是由于空格时,复制脚本从一个文档到sql developer。我不得不删除空格和脚本运行。

w8ntj3qf

w8ntj3qf7#

我遇到了同样的问题,这是由于行尾。我从另一个文档复制。我把所有的东西放在同一行,然后再次拆分它们,它的工作。

nfzehxib

nfzehxib8#

解决此Oracle错误的选项包括:
选项#1当您试图在SQL语句中使用特殊字符时会发生此错误。如果在列或表的名称中使用了除$、_和#之外的特殊字符,则必须将名称括在双引号中。
Option #2如果您从其他程序将SQL语句粘贴到编辑器中,可能会发生此错误。有时可能会出现不可打印的字符。在这种情况下,您应该尝试重新键入SQL语句,然后重新执行它。
Option #3当SQL WHERE子句中使用了特殊字符,并且该值没有用单引号括起来时,就会发生此错误。
例如,如果您有以下SQL语句:
SELECT * FROM供应商WHERE供应商名称=?;

xoefb8l8

xoefb8l89#

你可能从另一个来源复制粘贴了SQL,不知怎么搞砸了一些东西...我不知道为什么,哈哈。

在您正在使用的任何IDE中重新键入sql,它应该可以工作。

相关问题