oracle - How to debug this plsql code? -
i getting error while executing ps-sql procedure.
below script.
set serveroutput on size 100000 set echo off set feedback off set lines 300 declare cursor sessinfo select nvl(s.username, '(oracle)') username, s.osuser, s.sid, s.serial#, p.spid, s.status, s.module, s.machine, s.program, to_char(s.logon_time,'dd-mon-yyyy hh24:mi:ss') logon_time, s.last_call_et/3600 last_call_et_hrs, lpad(t.sql_text,30) "last sql" gv$session s, gv$sqlarea t, gv$process p s.sql_address = t.address , s.sql_hash_value =t.hash_value , p.addr=s.paddr , s.status='inactive' , s.last_call_et > (3600) order last_call_et; sess sessinfo%rowtype; sql_string1 varchar2(2000); sql_string2 varchar2(2000); begin open sessinfo; loop fetch sessinfo sess; exit when sessinfo%notfound; sql_string1 := 'sid=' || sess.sid || ' serail#=' || sess.serial# || ' machine=' || sess.machine || ' program=' || sess.program || ' username=' || sess.username || ' inactive_sec=' || sess.last_call_et || ' os_user=' || sess.osuser; sql_string2 := 'alter system kill session ' || chr(39) || sess.sid || ',' || chr(39) || sess.serial# || ';'; dbms_output.put_line(sql_string1); dbms_output.put_line(sql_string2); end loop; close sessinfo; end; / quit;
i getting below error. please me.
[oracle@localhost ~]$ sqlplus -s '/as sysdba' @inactive12.sql sql_string1:='sid='||sess.sid||' serail#='||sess.serial#||' machine='||sess.machine||' program='||sess.program||' username='||sess.username||' inactive_sec='||sess.last_call_et||' os_user='||sess.osuser; * error @ line 12: ora-06550: line 12, column 165: pls-00302: component 'last_call_et' must declared ora-06550: line 12, column 1: pl/sql: statement ignored
you aliased last_call_et
last_call_et_hrs
, cursor doesn't see last_call_et
anymore, use aliased column last_call_et_hrs
.
Comments
Post a Comment