Résultat requête pl/sql to variable ksh
Bonjour,
J'ai une petite question.
Je voudrais exécuter une requêtes pl/sql oracle du type :
Code:
Select max(run_id) from maTable.
Et placer le résultat dans une variable ksh.
La solution actuelle est la suivante : On passe via une requête sqlplus, et 2 fichiers temporaire (un fichier avec la requête sql et un fichier pour le résultat).
Ensuite on doit lire le fichier de résultat pour attribuer la valeur à la variable.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| sql_file=${FILE_BEGIN}.sql
cat << __EOF__ > ${sql_file}
SET SERVEROUTPUT ON
DECLARE
v_id NUMBER(38);
BEGIN
SELECT MAX(run_id) INTO v_id FROM maTable;
DBMS_OUTPUT.PUT_LINE(v_id);
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line ('ERROR : [' || SQLERRM || ']');
END;
/
EXIT;
__EOF__
sqlplus -s ${DB_LOGIN}/${DB_PASSWORD} @$sql_file >> ${TMPFILE}
rm -f ${sql_file}
#Lecture du fichier de résultat temporaire
rm -f ${TMPFILE} |
Le problème est que je trouve toute cette démarche assez lourde je voudrais savoir si on peut arriver à quelque chose du genre :
Code:
Select max(run_id) INTO $RUNID from maTable
ou encore :
Code:
RUNID = Select max(run_id) from maTable
Ou une requête semblable.
Merci.