2014-10-04 109 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

編譯器是正確的;該代碼中存在一些基本的語法錯誤。先解決這些問題,然後以問題的形式重新提交。