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.