ORACLE PL/SQL: Consigli su Stored e SQL

ORACLE PL/SQL: Consigli ed esempi utili

Consigli ed esempi utili su PL/SQL ORACLE
Piccoli consigli ed esempi sull'uso del linguaggio PL/SQL in ambiente ORACLE.

Verranno indicate anche alcune utilissime query.

 

Ecco un primo esempio di codice:
BEGIN
   update MIO_TABLESPACE.MIA_TABELLA E
   set
   E.indirizzo = 'VIA ESEMPIO'  
   where
   E.id = 122;
EXCEPTION
when OTHERS then
   dbms_output.put_line(  SQLERRM );
END;


In questo esempio si fa un update su una determinata tabella Orace.
In particolare si vede come stampare una eventuale eccezione (o errore) SQL su finestra di output.

Ecco un altro esempio:

DECLARE
   r number:=0;
BEGIN
   r := miotablespace.miopackage.miaFunzione(...);
   dbms_output.put_line (r) ;
END;


In questa maniera si può invocare una Stored Procedure Oracle manualmente sempre mediante del codice PL/SQL.
Abbiamo visto come con l'istruzione:

dbms_output.put_line (r) ;

si possa stampare su finestra di output.
Come concatenare due valori? Si usano le pipe.

dbms_output.put_line (r || secondoValore) ;

Vediamo altri esempi:
 select <tablespace>.<package>.<nomefunzione>(1, 2, <argomenti>) from dual;

 
Questo è un altro modo per invocare una stored procedure: mediante una query!!!
 Esempi di dichiarazioni di variabili:

variabile_numerica number :=0;
variabile_intera INTEGER :=8227;
variabile_stringa varchar2(99) := 'ROSSI';
variabile_data date := sysdate;
p varchar2(8) := 'dd/mm/yy';

data date :=  to_date('09/01/73', p);

 

Vediamo ora un esempio un po' più completo:

DECLARE
   r number:=0;
BEGIN

    BEGIN   
       dbms_output.put_line ('START FUNZIONE' ) ;
        r := MIO_TABLESPACE.MIO_PKG.CallMyFunction( ... );
        dbms_output.put_line ('RISULTATO:' || r) ;
        dbms_output.put_line ('END FUNZIONE' ) ;
    -- Codice da usare per test: chiama sempre la rollback   
    --    if r>= 0 then
    --        r := -1;
    --    end if;
    EXCEPTION
        WHEN OTHERS THEN
            r := -2;
        dbms_output.put_line(  SQLERRM );
    END;

    if r>=0 then
        dbms_output.put_line ('commit' || r) ;
        commit;
    else
        dbms_output.put_line ('rollback' || r) ;
        rollback;
    end if;
END;


Questo è un esempio completo di chiamata di una stored procedure con gestione manuale della transazione.

Volete abilitare i TRACE delle query coinvolte nelle stored procedure Oracle?
Allora bisogna mettere il codice seguente:

execute immediate 'alter session set tracefile_identifier = IDENTIFICATIVO_ESEMPIO';
dbms_monitor.SESSION_TRACE_ENABLE(BINDS => true, WAITS => true);

questo codice serve appunto ad abilitare il TRACE, che sarà scritto sul file di log di Oracle.
Quando lo si vuole disabilitare è sufficiente inderire il codice:

dbms_monitor.SESSION_TRACE_DISABLE();

ecco fatto!

 

Cambiare la Password di un utente

Ecco come cambiare la password di un utente del DB mediante query:

ALTER USER <nome_utente> IDENTIFIED BY  "<nuova_pwd>"  REPLACE  "<vecchia_pwd>";

 

We use cookies

Utilizziamo i cookie sul nostro sito Web. Alcuni di essi sono essenziali per il funzionamento del sito, mentre altri ci aiutano a migliorare questo sito e l'esperienza dell'utente (cookie di tracciamento). Puoi decidere tu stesso se consentire o meno i cookie. Ti preghiamo di notare che se li rifiuti, potresti non essere in grado di utilizzare tutte le funzionalità del sito.