Récuperer la valeur d'une fonction PLSQL UNIX

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

  1. 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
    1. 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
      1. Contributeur
        hello
        la commande de Krysstof plus la tienne
        var=$(sqlplus -s $INTRADAYUSER monscript.sql)
        echo $var(
        0