[ORA-00942] DBA_TAB_PRIVS dans une fonction
bonjour,
est ce que quelqu 'un pourrais me dire pourquoi j'ai toujours l'erreur ORA-00942 : table or view does not exist :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| CREATE OR REPLACE FUNCTION RLS_TEST
(P_TABLE IN VARCHAR2
)
RETURN NUMBER
IS
CURSOR C_TABPRIVS(B_TABLE VARCHAR2 ,B_ROLE VARCHAR2)
IS
SELECT GRANTEE FROM DBA_TAB_PRIVS
WHERE TABLE_NAME = B_TABLE
AND GRANTEE = B_ROLE
AND PRIVILEGE = 'SELECT';
V_DUMMY NUMBER;
BEGIN
OPEN C_TABPRIVS ('TABLE_TEST', 'ROLE_TEST');
FETCH C_TABPRIVS INTO V_DUMMY;
IF C_TABPRIVS%FOUND THEN
CLOSE C_TABPRIVS;
RETURN (1); ---TRUE TROUVE
END IF;
CLOSE C_TABPRIVS;
RETURN (0);
END; |
et pourtant si j'execute le select à part ca me retourne des rangées et ca semble connaitre la view dba_tab_privs.
Code:
SELECT GRANTEE FROM DBA_TAB_PRIVS
j'utilise oracle 9207.
merci pour votre aide
[ORA-00942] DBA_TAB_PRIVS dans une fonction
Ca marche merci pour ta precieuse information.