Bonjour,

J'essaye d'appeler une procédure PL SQL depuis un script shell, mais je ne vois pas comment récupérer la variable de sortie de ma procédure.

Voici ce que j'ai essayer de faire, mais ça ne marche pas ! pouvez-vous me dire si vous voyer quelque chose qui ne va pas

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
18
19
20
21
22
23
24
25
26
27
28
29
#!/bin/bash
PATH_R=`pwd`
. "$PATH_R"/main/.var
. "$PATH_R"/02_configuration/.export
. "$PATH_R"/02_configuration/"$ENV"
 
echo "Phase ADRESSE"
VAR='sqlplus /NOLOG <<!
connect $USER_MIG@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=$MIG_SERVER)(PORT=$MIG_PORT)))(CONNECT_DATA=(SID=$MIG_SID)));
set serveroutput on;
set heading off;
set feedback off;
set linesize 1000;
declare 
out_value number;
 
BEGIN
exec LDE_MIGRATION_BASE2.MIG_PACK_CHAINE_CYC.PRC_TRAIT_MIG_CYC_REQ('ADRESSE', out_value);
dbms_output.put_line(out_value);
END;
/
exit;
!'
if [ $VAR = 0 ]
then
 echo "OK"
else
 echo "Erreur numero : $VAR"
fin

Au fait ce que j'essaye de récupérer c'est la variable de sortie out_value de la procédure PRC_TRAIT_MIG_CYC_REQ

Merci pour votre aide

Cordialement,