salve a tutti mi sto immergendo nel mondo shell e oracle come da titolo ma non riesco a ritornarmi il risultato di una istruzione oracle nella shell, posto un po di codice.
ho provato sia con una funzione che con una procedura le posto entrambi (naturamlmente nello shell script ce ne è una sola).
nello script ho fatto diverse prove ma nessuna funzionava, e nel codice dello script metto l'ultima fatta.






procedura:


codice:
create or replace PROCEDURE COUNT_NEW_P 
(
  total OUT number 
) AS 
BEGIN
 SELECT count(*) into total
   FROM work_file;




END COUNT_NEW_P;



function:


codice:
create or replace FUNCTION count_new
RETURN number IS
   total number(6) := 0;
BEGIN
   SELECT count(*) into total
   FROM work_file;
   
   RETURN total;


 RETURN (null);
   
END;



script:


codice:
#!/bin/bash
#Configurazione variabili ambiente Oracle
ORACLE_HOME='C:\Oracle\product\11.2.0\dbhome_1'
ORACLE_SID='orcl'
oracle_usr='HR'
oracle_pwd='HR'


ret=$?


sqlplus  ${oracle_usr}/${oracle_pwd}@${ORACLE_SID} <<EOF
   WHENEVER SQLERROR EXIT 99
   SET HEAD OFF
   SET FEED OFF
   SET PAGES 0
   var ret number
     
   BEGIN
   ret := count_new;


END;
   /
   
   exit :ret
EOF


echo " ret/ $ret"


exit 0



come avete capito sono un neofita dell'argomento. se qualcuno ha delle idee o sa esattamente come dovrei fare lo ringrazio infinitamente.