CREATE OR REPLACE PROCEDURE P_MONITOR(AN_MINUTES NUMBER DEFAULT 60)
v_Str VARCHAR2(100);
as
CURSOR C_users(v_minutes number) is
SELECT s.username,s.status, s.machine, 'alter system kill session '
||''''||s.sid||','||s.serial# ||'''' operates
FROM v$session s, v$process p
WHERE TYPE = 'USER'
AND p.addr = s.paddr
AND status != 'KILLED'
AND last_call_et > v_minutes*60
ORDER BY last_call_et desc;
BEGIN
FOR T_users IN C_users(an_minutes) LOOP
v_Str := T_USERS.OPERATES;
EXECUTE IMMEDIATE v_Str;
END LOOP;
END;
/错误信息如下:
PROCEDURE WEBUSER.P_MONITOR 编译错误错误:PLS-00103: 出现符号 "V_STR"在需要下列之一时:
;iswithauthid
deterministicparallel_enableas
符号 "is" 被替换为 "V_STR" 后继续。
行:2
文本:v_Str VARCHAR2(100);错误:PLS-00103: 出现符号 "AS"在需要下列之一时:
beginfunctionpackagepragma
proceduresubtypetypeuse<an identifier>
<a double-quoted delimited-identifier>cursorformcurrent
行:3
文本:AS
v_Str VARCHAR2(100);
as
CURSOR C_users(v_minutes number) is
SELECT s.username,s.status, s.machine, 'alter system kill session '
||''''||s.sid||','||s.serial# ||'''' operates
FROM v$session s, v$process p
WHERE TYPE = 'USER'
AND p.addr = s.paddr
AND status != 'KILLED'
AND last_call_et > v_minutes*60
ORDER BY last_call_et desc;
BEGIN
FOR T_users IN C_users(an_minutes) LOOP
v_Str := T_USERS.OPERATES;
EXECUTE IMMEDIATE v_Str;
END LOOP;
END;
/错误信息如下:
PROCEDURE WEBUSER.P_MONITOR 编译错误错误:PLS-00103: 出现符号 "V_STR"在需要下列之一时:
;iswithauthid
deterministicparallel_enableas
符号 "is" 被替换为 "V_STR" 后继续。
行:2
文本:v_Str VARCHAR2(100);错误:PLS-00103: 出现符号 "AS"在需要下列之一时:
beginfunctionpackagepragma
proceduresubtypetypeuse<an identifier>
<a double-quoted delimited-identifier>cursorformcurrent
行:3
文本:AS
v_Str VARCHAR2(100); ---这是什么东东?哪里来的语法
as 翻oracle文档sql referencehttp://tahiti.oracle.com
as
v_Str VARCHAR2(100);
CURSOR C_users(v_minutes number) is
SELECT s.username,s.status, s.machine, 'alter system kill session '
||''''||s.sid||','||s.serial# ||'''' operates
FROM v$session s, v$process p
WHERE TYPE = 'USER'
AND p.addr = s.paddr
AND status != 'KILLED'
AND last_call_et > v_minutes*60
ORDER BY last_call_et desc;
BEGIN
FOR T_users IN C_users(an_minutes) LOOP
v_Str := T_USERS.OPERATES;
EXECUTE IMMEDIATE v_Str;
END LOOP;
END;
/
变量/常量定义...
Begin
内容描述...
End;
CREATE OR REPLACE PROCEDURE P_MONITOR(AN_MINUTES NUMBER DEFAULT 60)
as
v_Str VARCHAR2(100);
BEGIN
CURSOR C_users(v_minutes number) is
SELECT s.username,s.status, s.machine, 'alter system kill session '
||''''||s.sid||','||s.serial# ||'''' operates
FROM v$session s, v$process p
WHERE TYPE = 'USER'
AND p.addr = s.paddr
AND status != 'KILLED'
AND last_call_et > v_minutes*60
ORDER BY last_call_et desc;
FOR T_users IN C_users(an_minutes) LOOP
v_Str := T_USERS.OPERATES;
EXECUTE IMMEDIATE v_Str;
END LOOP;
END;
v_Str VARCHAR2(100);
as
CURSOR C_users(v_minutes number) is
as有问题,as怎么在这个位置CREATE OR REPLACE PROCEDURE P_MONITOR(AN_MINUTES NUMBER DEFAULT 60)
as
v_Str VARCHAR2(100);
CURSOR C_users(v_minutes number) is
as
v_Str VARCHAR2(100);
CURSOR C_users(v_minutes number) is
SELECT s.username,s.status, s.machine, 'alter system kill session '
||''''||s.sid||','||s.serial# ||'''' operates
FROM v$session s, v$process p
WHERE TYPE = 'USER'
AND p.addr = s.paddr
AND status != 'KILLED'
AND last_call_et > v_minutes*60
ORDER BY last_call_et desc;
BEGIN
FOR T_users IN C_users(an_minutes) LOOP
v_Str := T_USERS.OPERATES;
EXECUTE IMMEDIATE v_Str;
END LOOP;
END;