我在Oracle 10g Express Edition中有这部分代码:
CREATE TABLE SALARY (
GRADE number(1),
LOSAL number(4),
HISAL number(4));
INSERT INTO SALARY VALUES (1,700,1200);
INSERT INTO SALARY VALUES (2,1201,1400);
INSERT INTO SALARY VALUES (3,1401,2000);
INSERT INTO SALARY VALUES (4,2001,3000);
INSERT INTO SALARY VALUES (5,3001,9999);
我希望像SQL命令一样输入它,问题是当我点击Run按钮时收到以下消息:
ORA-00911:无效字符
我检查了语法,但一切似乎都没问题,有人看到任何错误吗?
答案 0 :(得分:1)
这部分代码由六个格式正确的语句组成,但它不由一个正确格式化的语句组成。您需要单独运行每个语句。 (顺便说一下,它抱怨的“无效字符”是前两个语句之间的分号;
。它在最后一个语句的最后删除了分号,因为它可以告诉它的结尾声明,但它并没有删除语句之间的分号,因为据它知道它们正处于一个大声明的中间。)
答案 1 :(得分:1)
您提到的是Oracle Express。您是否使用Web前端(通过浏览器)来运行这些语句?
如果是这种情况:网络前端不允许一次运行多个语句。
使用Oracle Express时,您需要单独运行每个语句。网络前端。
Oracle的SQL Developer是免费的,并且作为SQL工具要好得多。或者使用SQL * Plus或使用那里的许多SQL客户端。
答案 2 :(得分:0)
将所有内容复制到记事本中然后 从记事本中复制它并再次将其粘贴到查询分析器中。 粘贴在记事本中将删除任何隐藏的特殊字符。
答案 3 :(得分:0)
你需要在插入语句后写commit;
语句...希望它能解决你的问题。
答案 4 :(得分:0)
如果问题仍然存在,请尝试INSERT ALL
请参阅相关帖子Where's my invalid character (ORA-00911)以及如何执行此操作的参考:http://psoug.org/snippet/INSERT-ALL_589.htm
答案 5 :(得分:0)
我怀疑你想把整个东西放在一个匿名的PL / SQL块中然后运行它,即我希望它能够正常工作,如果我错了就纠正我
BEGIN
INSERT INTO SALARY VALUES (1,700,1200);
INSERT INTO SALARY VALUES (2,1201,1400);
INSERT INTO SALARY VALUES (3,1401,2000);
INSERT INTO SALARY VALUES (4,2001,3000);
INSERT INTO SALARY VALUES (5,3001,9999);
END;
答案 6 :(得分:0)
号(P) 这是一个定点数,精度为p,比例为0.相当于NUMBER(p,0)
一个数字在oracle中可容纳的最大数字范围从1到38可能是您的错误问题..
答案 7 :(得分:-1)
当我尝试创建表并按代码插入值时,它已成功完成。
SQL> CREATE TABLE SALARY (
2 GRADE number(1),
3 LOSAL number(4),
4 HISAL number(4));
Table created.
SQL>
SQL> INSERT INTO SALARY VALUES (1,700,1200);
1 row created.
SQL> INSERT INTO SALARY VALUES (2,1201,1400);
1 row created.
SQL> INSERT INTO SALARY VALUES (3,1401,2000);
1 row created.
SQL> INSERT INTO SALARY VALUES (4,2001,3000);
1 row created.
SQL> INSERT INTO SALARY VALUES (5,3001,9999);
1 row created.
请尝试一下,看看