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