Skip to main content
 

EXEC_SQL

Esempio di utilizzo del package EXEC_SQL per eseguire istruzioni SQL dinamiche all'interno di Oracle Forms o Reports.

PACKAGE connessione IS
 curr_user varchar2(20);
 curr_pass varchar2(20);
 curr_conn varchar2(20);
 sql_connect Exec_Sql.ConnType;
 procedure apri;
 procedure chiudi;
END;
 
PACKAGE BODY connessione IS
procedure apri is
 begin
    curr_user := Get_Application_Property(USERNAME); 
    curr_pass := Get_Application_Property(PASSWORD); 
    curr_conn := Get_Application_Property(CONNECT_STRING); 
    sql_connect := Exec_Sql.Open_Connection(curr_user, curr_pass, curr_conn);
 end;
procedure chiudi is 
 begin
    Exec_Sql.Close_Connection(sql_connect);
 end;
END;
 
FUNCTION n_righe RETURN pls_integer IS
   sql_cursor Exec_Sql.CursType;
   sql_command varchar2(4000);
   n_righe pls_integer;
   ret     pls_integer;
begin
   sql_cursor := Exec_Sql.Open_Cursor(connessione.sql_connect);
   sql_command := 'select count(*) from ...... where .......');
   Exec_Sql.Parse(connessione.sql_connect, sql_cursor, sql_command, Exec_Sql.V7);
   EXEC_SQL.DEFINE_COLUMN(connessione.sql_connect, sql_cursor, 1, n_righe);
   ret := Exec_Sql.Execute_and_fetch(connessione.sql_connect, sql_cursor);
   EXEC_SQL.column_value(connessione.sql_connect, sql_cursor, 1, n_righe);
   Exec_Sql.Close_Cursor(connessione.sql_connect, sql_cursor);
   return n_righe;
end;

Oracle, Forms & Reports