execution d'une procédure
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 ? :D
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 :
Code:
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 |
Je suis connecté avec l'user propriétaire de mon schéma.
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
Code:
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;
/ |
Resultat lors de l'appel de la procedure dans mon script : la table n'est pas créé :cry: et j'obtiens l'exception "ORA-01031: privilèges insuffisants"
Quels sont les droits qu'il me manque ??
Merci