function 작성 시, 시스템 테이블에 대한 오류 발생 문의 0 5 2,037

by 당근 [PL/SQL] function v$session v$lock [2017.01.09 11:17:20]


안녕하세요. 

DB lock 발생 시 확인/및 처리를 할 수 있는 function 을 제작하려 합니다.

 

그런데 커서에 있는 from 절에서 오류가 나요,,, 이유를 모르겠습니다.

예전에 다른 DB 에서 이렇게 처리했던 기억이 나거든요..

예문은 아래와 같습니다.

function test_1 (p_1 varchar2)
  return number
is

cursor cur1 is
select a.sid
,a.serial# as serial_1
from v$session a
      , v$lock b
where 1=1
and a.sid = b.sid
and b.type = 'TM'

이렇게 작성 한 후, 컴파일 하면 "V$LOCK" 에 하이라이트 되면서 아래와 같은 오류가 발생합니다.

"PL/SQL : ORA-00942 : 테이블 또는 뷰가 존재하지 않습니다."

환경 : DB - 11G, 에디터 - PL/SQL

 

 

도움 부탁 드립니다. 

by 랑에1 [2017.01.09 11:25:46]

권한 문제 같은데요 user 권한을 확인해 보셔야할 것 같은데요?


by 당근 [2017.01.09 11:27:08]

SYSTEM 권한으로 테스트 했습니다 


by 랑에1 [2017.01.09 12:09:03]

조회는 되는데 컴파일 하려니 저 오류가 난다는 말씀이세요?


by 당근 [2017.01.09 12:23:27]

네. 저 커서를 따로 실행하면 결과가 나오는데요.

function 에 포함해서 컴파일 하면 오류가 발생합니다. 


by 마농 [2017.01.09 13:12:32]

컴파일할때의 권한체크는 롤권한이 아닌 직접권한만 체크하는 듯 합니다.
조회 권한을 직접 부여해 주셔야 할 듯.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입