Récuperer la valeur d'une fonction PLSQL UNIX

Fermé
elmarino Messages postés 44 Date d'inscription mercredi 9 juillet 2008 Statut Membre Dernière intervention 27 septembre 2010 - 22 juin 2010 à 13:18
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 - 22 juin 2010 à 15:39
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, ...)


A voir également:

3 réponses

Krysstof Messages postés 1483 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 23 août 2010 294
22 juin 2010 à 13:26
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 44 Date d'inscription mercredi 9 juillet 2008 Statut Membre Dernière intervention 27 septembre 2010 39
22 juin 2010 à 15:09
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 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
22 juin 2010 à 15:39
hello
la commande de Krysstof plus la tienne
var=$(sqlplus -s $INTRADAYUSER monscript.sql)
echo $var(
0