Bonjour,
J'ai une petite question.
Je voudrais exécuter une requêtes pl/sql oracle du type :
Et placer le résultat dans une variable ksh.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Select max(run_id) from maTable.
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.
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 : 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 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}
ou encore :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Select max(run_id) INTO $RUNID from maTable
Ou une requête semblable.
Code : Sélectionner tout - Visualiser dans une fenêtre à part RUNID = Select max(run_id) from maTable
Merci.
Partager