过程主体+plsql中出错



创建或替换过程kwp_SCMP_KillSessionTEST为

v_sql VARCHAR2(60);Cnt整数:=0;光标cur是从TESTPROCE t中选择t.sql_id、t.detail、t.sid;

开始

对于当前循环中的i

begin
  cnt := cnt + 1;
  select distinct S.SID, S.SERIAL#, s. MACHINE, s.SQL_ID, s.EVENT
    from V$SESSION S , TESTPROCE
   where s.username <> 'SYS'
     and s.sql_id = t.sql_id
     and s.type <> 'BACKGROUND';
  v_sql := 'ALTER SYSTEM KILL SESSION ''' || i.sid || ',' || i.serial# ||
           ''' immediate';
  dbms_output.put_line(Cnt || '>>>>' || SQLID);
   --execute immediate (v_sql);
end;

末端回路;

dbms_output_line(Cnt||'>>>'||SQLID);

结束kwp_SCMP_KillSessionTEST;

PROCEDURE SYS.KWP_SCMP_KILLESSIONTEST 的编译错误

错误:PL/SQL:ORA-00904:"T"。"SQL_ID":无效标识符线路:21文本:和s.sql_id=t.sql_id

错误:PL/SQL:SQL语句被忽略线路:18文本:选择不同的S.SID、S.SERIAL#、S.MACHINE、S.SQL_ID、S.EVENT

错误:PLS-00302:必须声明组件"SERIAL#"线路:23Text:v_sql:="ALTER SYSTEM KILL SESSION"||i.sid|','||i.serial#||

错误:PL/SQL:忽略语句线路:23Text:v_sql:="ALTER SYSTEM KILL SESSION"||i.sid|','||i.serial#||

错误:PLS-00201:必须声明标识符"SQLID"线路:25文本:dbms_output.put_line(Cnt||'>>>'||SQLID);

错误:PL/SQL:忽略语句线路:25文本:dbms_output.put_line(Cnt||'>>>'||SQLID);

错误:PLS-00201:必须声明标识符"SQLID"线路:31文本:dbms_output.put_line(Cnt||'>>>'||SQLID);

错误:PL/SQL:忽略语句线路:31文本:dbms_output.put_line(Cnt||'>>>'||SQLID);

编译器是正确的;该代码中存在一些基本的语法错误。先解决这些问题,然后以问题的形式重新提交。

最新更新