我需要一个返回用户PID的函数。在这条线之后,我编写了以下函数:
CREATE OR REPLACE FUNCTION SPID
RETURN SMALLINT
AS
RES SMALLINT := 0;
BEGIN
SELECT PID INTO RES FROM V$PROCESS WHERE ADDR=(SELECT PADDR FROM V$SESSION WHERE SID=(SELECT SID FROM V$SESSION WHERE AUDSID=SPID()));
RETURN RES;
END;但是,当我试图做一个
SELECT SPID() FROM DUAL;我得到了一个ORA-00600错误:
ORA-00600: internal error code, arguments: [KPDB-MAX_SWITCH], [], [], [], [], [], [], [], [], [],
ORA-06512: at "RNDSUITE.SPID", line 6
...任何补救措施都是受欢迎的。
发布于 2014-08-01 12:01:29
您可以使用这个pid:
select
pid,spid
from
v$process
where
ADDR=(select paddr from v$session where AUDSID=sys_context('USERENV', 'sessionid'));https://stackoverflow.com/questions/25079728
复制相似问题