我用的是oracle 10.1为何写sql的时候表名和字段名都要加双引号("")oracle才能识别,用"NEW"、"OLD"和":="等符号ORACLE都不识别,而且我的pl/sql竟然不认识“EXEC”这个符号,在sqlplus中能识别,非常迷茫,不知道是什么问题。请大虾们指点指点,先谢谢了!!!

解决方案 »

  1.   

    比如写一个插入的sql
    insert into "T_AddressList" ("AddListID") values (s_AddListID.Nextval) end;
    写成这样才不会有错下面这个触发器中用了new提示new 不可识别
    Create or Replace Trigger Trg_ErrLog
      after insert  on "T_ErrLog" 
      --REFERENCING NEW AS NEW OLD AS OLD
      for each row
    begin
         select s_ErrLogid.Nextval into new.ErrLogID from DUAL;
        commit;
    end;
    在pl/sql中运行
    exec Prd_ErrLogInsert("descript","IP");
    提示sql语句无效但在sqlplus中可以运行
      

  2.   

    我在plsql里写的在sqlplus前两个问题也有
      

  3.   

    oracle 10.1不能这么牛吧,
    select s_ErrLogid.Nextval into ::new.ErrLogID from DUAL;//这个应该这样写吧
      

  4.   

    写成这样以后提示“无效和主机/变量名”
    select s_ErrLogid.Nextval into ::new.ErrLogID from DUAL;
      

  5.   

    关于双引号:我以前遇到一次这种问题,不知跟你的一不一样.我遇到的问题的原因是建表时有问题.如:
    create table li."ate" ("abc" varchar2(10));这样建
    select "abc" from li."ate";没问题
    select "abc" from li.ate;有错误
    select abc from li."ate";有错误
      

  6.   

    elect s_ErrLogid.Nextval into :new.ErrLogID from DUAL