créer un lien vers un repertoire en pl/sql
Voilà, j'aimerais savoir si c'est possible de créer un lien vers un repertoire
comme on peut le faire ainsi :
Code:
1 2
|
create or replace directory testDir as 'c:\temp'; |
J'aimerais faire cela mais dans une procédure pl/sql
Code:
1 2 3 4 5 6 7 8 9 10
|
create or replace procedure changeDirectory(p_chemin Varchar2)
is
begin
create or replace directory BLOBDIR as p_chemin;
end;
/
show errors |
j'obtiens cette erreur :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
Erreurs pour PROCEDURE CHANGEDIRECTORY :
LINE/COL ERROR
-------- -----------------------------------------------------------------
5/3 PLS-00103: Symbole "CREATE" rencontré à la place d'un des
symboles suivants :
begin case declare exit for goto if loop mod null pragma
raise return select update while with <an identifier>
<a double-quoted delimited-identifier> <a bind variable> <<
close current delete fetch lock insert open rollback
savepoint set sql execute commit forall merge
<a single-quoted SQL string> pipe |
Procdeure créée sans erreur mais problème lors de l'execution
Code:
1 2 3 4 5 6 7 8 9
|
CREATE OR REPLACE procedure changeDirectory(p_chemin Varchar2)
IS
begin
execute immediate 'CREATE OR REPLACE directory BLOBDIR AS' || p_chemin;
end;
/
SHOW errors |
Voici la procédure elle est bien créée par contre lorsque je l'execute j'ai une erreur
Code:
1 2
|
exec changedirectory('c:\temp\'); |
Code:
1 2 3 4 5 6 7 8
|
BEGIN changedirectory('c:\temp\'); END;
*
ERREUR à la ligne 1 :
ORA-00905: Mot-clé absent
ORA-06512: à "SYSTEM.CHANGEDIRECTORY", ligne 5
ORA-06512: à ligne 1 |
erreur trouvée merci de l'aide
Code:
1 2 3 4 5 6 7 8 9 10 11
|
CREATE OR REPLACE procedure changeDirectory(p_chemin Varchar2)
IS
begin
EXECUTE IMMEDIATE
'CREATE OR REPLACE DIRECTORY BLOBDIR '||' AS '''||p_chemin||'''';
end;
/
SHOW errors |
Cependant il faut avoir les drois d'administrateur pour exectuer cette procédure.
En fait, il faut se connecter en system mais en tant que sysDBA.