【发布时间】:2015-03-15 06:56:46
【问题描述】:
我尝试用Toad for oracle 执行SQL INSERT:
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 语言参考手册。
操作:无
我该如何解决?
【问题讨论】:
-
声明没问题。我似乎记得某些版本的 Toad 被 cmets 混淆了;如果您完全删除注释掉的提交,它会起作用吗?您是作为语句运行还是作为脚本运行?
-
我使用 SQL Plus(不是 Toad)执行 DDL 和 DML 没有问题。
-
您是否有可能从使用智能引号的地方(即 MS Word)复制了 SQL?每当它们出现而不是常规引号时,您都会收到此错误。
-
只需手动重新编写查询。它会报错,因为当您从 Skype 或 Internet 等地方复制查询时,会复制一些额外的空格(或 spl.字符)。而且会报错。
-
F9拯救了我的一天!