插入SQL命令错误的字符问题

时间:2012-09-03 04:37:35

标签: sql insert oracle10g

我在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:无效字符

我检查了语法,但一切似乎都没问题,有人看到任何错误吗?

8 个答案:

答案 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可能是您的错误问题..

这对你有帮助... http://ss64.com/ora/syntax-datatypes.html

答案 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.

请尝试一下,看看