Récuperer la valeur d'une fonction PLSQL UNIX

elmarino Messages postés 45 Statut Membre -  
dubcek Messages postés 19032 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Voilà, mon problème c'est que j'ai une fonction PL SQL que je décrirai comme suit:

CREATE OR REPLACE FUNCTION func_testbatch
return NUMBER
IS
code number;
BEGIN
code:=3;
return code;
END;
/

Je veux récuperer cette valeur de retour sous shell(KSH), du coup j'ai procédé comme suit:

var=$(sqlplus -s $INTRADAYUSER <<+EOF+ !func_testbatch!)
print $var;

Rien ne s'affiche!!
Voilà j'espere que j'ai été assez clair !

NB: Mon environnement UNIX est bon(USER, ...)

3 réponses

Krysstof Messages postés 1659 Statut Membre 294
 
j'ai plus sqlplus sous la main, mais tu devrais faire un fichier SQL qui contiendrait la totalité du code que tu taperais sous le shell sqlplus, et tu donne ce fichier à manger à l'exécution du SQLplus dans ton script.

sqlplus -s $INTRADAYUSER monscript.sql

(d'ailleur je ne comprends pas le "<<+EOF+ ", mais je suis pas un expert ksh, loiiin de la ^^)
0
elmarino Messages postés 45 Statut Membre 39
 
Ok, supposons alors que j'utilise un fichier où je mettrai mon code, quelle est la syntaxe à utiliser pour affecter la valeur de retour de ma fonction à une variable shell?
Merci pour ta réponse
0
dubcek Messages postés 19032 Date d'inscription   Statut Contributeur Dernière intervention   5 641
 
hello
la commande de Krysstof plus la tienne
var=$(sqlplus -s $INTRADAYUSER monscript.sql)
echo $var(
0