这是我的一个插入的存储过程,不知道错在哪里,请大家帮忙看一下
create or replace procedure log_insert(UID in VARCHAR2,
UNAME in VARCHAR2,SID in VARCHAR2,LOGONTIME in DATE,
LOGOFFTIME in DATE,lIP in VARCHAR2,REMOTENAME in VARCHAR2,REMOTEUSER in VARCHAR2,
ACTIVE in CHAR,ONTIME in FLOAT,OID in VARCHAR2,OP_DATETIME in DATE,OP_CODE in VARCHAR2,
QRY_CODE in VARCHAR2,ERRID in NUMBER,ERRMSG in NVARCHAR2,msg out number) is
message number := 0;
begin
insert into xa_log_logon(USERID,USERNAME,SESSIONID,LOGONTIME,LOGOFFTIME,IP,REMOTENAME,
REMOTEUSER,ACTIVE,ONLINETIME,ORGID,OP_DATETIME,OP_CODE,QRY_CODE,ERRID,ERRMSG)
values(USERID,USERNAME,SESSIONID,LOGONTIME,LOGOFFTIME,IP,REMOTENAME,
REMOTEUSER,ACTIVE,ONLINETIME,ORGID,OP_DATETIME,OP_CODE,QRY_CODE,ERRID,ERRMSG);
message := 1;
msg := message;
exception
when others then
msg := message;
end;

解决方案 »

  1.   

    编译后,show error 看看错误在那里?
      

  2.   

    这是错误信息
    SQL> show errors;
    Errors for PROCEDURE RJ.LOG_INSERT:
     
    LINE/COL ERROR
    -------- ---------------------------------
    12/30    PL/SQL: ORA-00984: 列在此处不允许
    9/1      PL/SQL: SQL Statement ignored
     
      

  3.   

    log_insert()里面你传进来的字段不能和表字段名字一致,所以常用的做法是
    v_UID in VARCHAR2,v_UNAME in VARCHAR2...你写一样的,oracle就分辨不出来
      

  4.   

    把你要插入的值跟踪出来,然后把这个insert 语句放在pl/sql里执行以下,看报啥错
      

  5.   

    我现在是创建过程都创建不了,直接执行insert没错
    现在报这个错
    SQL> show errors;
    Errors for PROCEDURE RJ.LOG_INSERT:
     
    LINE/COL ERROR
    -------- ----------------------------------------------------------------------------------------------------------
    18/1     PLS-00103: 出现符号 "EXCEPTION"在需要下列之一时:   := . ( @ % ;  符号 ";" 被替换为 "EXCEPTION" 后继续。