Bonjour à tous,

J'ai un problème de privilège avec mon code PL/SQL que je n'ai pas sous SQL.

voici ma procédure dans son paquet :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
-- Create Package
CREATE OR REPLACE PACKAGE pkg IS
  -- Create Table
  PROCEDURE create_table (table_name IN VARCHAR2 );
END;
/
 
CREATE OR REPLACE PACKAGE BODY pkg IS
  PROCEDURE create_table ( table_name IN VARCHAR2) IS
      create_tab   varchar2(100);
  BEGIN
     create_tab := 'CREATE TABLE ' || table_name || ' AS SELECT * FROM v$session';
     EXECUTE IMMEDIATE create_tab;
END;
 
END;
/
voici ma commande :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
BEGIN
  pkg.create_table( 'toto' );
END; 
/
Mon erreur :
Rapport d'erreur :
ORA-01031: privilèges insuffisants
ORA-06512: à "USER.PKG", ligne 14
ORA-06512: à ligne 2
01031. 00000 - "insufficient privileges"

J'ai lu que l'erreur ORA-06512 pouvait être du à une variable trop petite pour la valeur stockée. Cependant, modifier la taille de varchar2(100), n'a rien changé.

Merci d'avance pour vos réponses !