viernes, 24 de febrero de 2012

LENGUAJE PL/SQL- CODIGO FUENTE

PL/SQL: es un lenguaje portable, procedural y de transacción muy potente y de fácil manejo, con las siguientes características fundamentales:
1.Incluye todos los comandos de SQL.
2. Es una extensión de SQL, ya que este es un lenguaje no completo dado que no incluye las herramientas clásicas de programación. Por eso, PL/SQL amplia sus posibilidades al incorporar las siguientes sentencias:
- Control condicional
- Ciclos
3. Incorpora opciones avanzadas en:
- Control y tratamiento de errores llamado excepciones.
- Manejo de cursores.

Estructura del bloque de código
La organización del bloque de código de PL/SQL, compuesto por cuatro secciones DECLARE, BEGIN, EXCEPTION y END.

EJEMPLO  CODIGO  FUENTE DESDE ORACLE FORMS

Código Fuente:
Declare
repid REPORT_OBJECT;
v_rep VARCHAR2(100);
rep_status Varchar2(20);
BEGIN
repid := find_report_object('REP_VINCULADO');
-- Determinamos si se visualizará la ventana de parámetros 
SET_REPORT_OBJECT_PROPERTY(repid,REPORT_OTHER,'paramform=no'); 
SET_REPORT_OBJECT_PROPERTY(repid,REPORT_EXECUTION_MODE,BATCH); 
--Fijamos el valor para el tipo de ejecución (SYNCHRONOUS, ASYNCHRONOUS) 
SET_REPORT_OBJECT_PROPERTY(repid,REPORT_COMM_MODE,SYNCHRONOUS); 
--Fijamos el valor para el tipo de salida(cache, printer, file, mail..)
SET_REPORT_OBJECT_PROPERTY(repid,REPORT_DESTYPE,CACHE); 
--fijamos el valor para el formato de salida del reporte (html, pdf, rtf)
SET_REPORT_OBJECT_PROPERTY(repid,REPORT_DESFORMAT,'html');
--fijamos el valor para el servidor de reportes que ejecutará el report 
SET_REPORT_OBJECT_PROPERTY(repid,REPORT_SERVER,'nombre_del_servicio_de_reportes'); 
--ejecutamos el reporte 
v_rep := RUN_REPORT_OBJECT(repid);
rep_status := report_object_status(v_rep);
WHILE rep_status in ('RUNNING','OPENING_REPORT','ENQUEUED') LOOP
rep_status := report_object_status(v_rep);
END LOOP;
if rep_status = 'FINISHED' then
--Visualizamos la salida del reporte 
WEB.SHOW_DOCUMENT('/reports/rwservlet/getjobid'||substr(v_rep,instr(v_rep,'_',-1)+1)||'?'||'server=nombre_del_servicio_de_reportes','_blank');
Else
message('error en la ejecución');
end if;
END;


No hay comentarios:

Publicar un comentario