Bonjour,
je suis debutant en PL/SQL et j'aimerais avoir un eclairceissement sur le comportement suivant ... si quelqu'un pouvait m'expliquer le pourquoi ?
Je vous donne un exemple simple qui n'a rien à voir avec mon code mais qui l'illustre bien :
Cas 1 :
voici une partie de mon script shell :
Je suis connecté avec l'user propriétaire de mon schéma.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 sqlplus -s /nolog << fin > $LOGORA whenever sqlerror exit REM connection à la base connect $user_oracle/$mdp_oracle@$instance_oracle ; DECLARE BEGIN EXECUTE IMMEDIATE 'CREATE TABLE test_table (champ1 char(50), champ2 char(50))'; END; / fin
resultat : la table "test_table" a été créé
Cas 2 : ( celui qui m'interesserait )
je fais du code précédent une procedure stockée
Resultat lors de l'appel de la procedure dans mon script : la table n'est pas créé et j'obtiens l'exception "ORA-01031: privilèges insuffisants"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 CREATE OR REPLACE PROCEDURE proc_create IS BEGIN EXECUTE IMMEDIATE 'CREATE TABLE test_table (champ1 char(50), champ2 char(50))'; END; /
Quels sont les droits qu'il me manque ??
Merci
Partager