2014-10-04 105 views
0

创建或替换过程kwp_SCMP_KillSessionTEST是错误在过程体+ PLSQL

v_sql VARCHAR2(60); Cnt整数:= 0; cursor cur is select T.sql_id,t.detail,t.sid from TESTPROCE t;

开始

对于i在CUR环

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; 

END LOOP;

dbms_output.put_line(Cnt ||'>>>>'|| SQLID);

END kwp_SCMP_KillSessionTEST; PL/SQL:ORA-00904: “T” “SQL_ID”:

为PROCEDURE SYS.KWP_SCMP_KILLSESSIONTEST

错误编译错误无效的标识符 行:21 文本:和s.sql_id = t.sql_id

错误:PL/SQL:SQL语句被忽略 行:18 文本:选择不同的S.SID,S.SERIAL#,s。机,s.SQL_ID,s.EVENT

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

错误:PL/SQL:语句被忽略 行:23 文本: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);

+0

嗨,欢迎来到Stack Overflow。您可能需要阅读一些关于如何提出一个好问题的帮助页面,然后点击“编辑”并添加您实际要求的一些细节。您可以通过选择它并点击文本区域工具栏中的“{}”按钮来正确格式化代码。 – IMSoP 2014-10-04 13:09:20

回答

-1

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