viernes, 21 de febrero de 2014

Ejemplo de Set_Block_Property('BLOQUE',DEFAULT_WHERE,CONDICION) Oracle Forms

--Creamos la Unidad de Programa

PROCEDURE carga_bloque IS
Ln_num_dpto NUMBER;
Ln_num_plantilla NUMBER;
Lv_where varchar2(200);

BEGIN
--Se crean 2 variables que vienen asignadas de 2 parámetros
  Ln_num_dpto:=:PARAMETER.NUM_DPTO;
  Ln_num_plantilla:=:PARAMETER.NUM_PLANTILLA;
--Creamos la variable condición
  Lv_where:='NUM_DPTO='||Ln_num_dpto||' and NUM_PLANTILLA='||Ln_num_plantilla;
  --Creamos un mensaje de la condición
  :msg:=lv_where;
  go_block('BL_DOCUMENTO_ETAPA');
--Seteamos el default where
  Set_Block_Property('BL_DOCUMENTO_ETAPA',DEFAULT_WHERE,Lv_where);
  do_key('Execute_Query');
END;

jueves, 20 de febrero de 2014

Consultas dinámicas en Oracle

--Creación de una tabla copiada de un select
CREATE TABLE TABLA_PRUEBA
AS
SELECT * FROM EMP;


--Consulta dinámica para dar privilegios de manera automática a un usuario
SELECT    'GRANT SELECT INSERT, UPDATE, DELETE ON '|| TABLE_NAME|| ' TO USUARIO;'
FROM USER_TABLES;


--Consulta dinámica para crear un sinónimo público a un usuario determinado
SELECT 'CREATE SYNONYM '|| OBJECT_NAME|| '  FOR USUARIO.'|| OBJECT_NAME|| ';'
  FROM ALL_OBJECTS
 WHERE OWNER = USER
       AND OBJECT_TYPE IN
              ('TABLE',
               'VIEW',
               'PROCEDURE',
               'PACKAGE',
               'TRIGGERS',
               'SEQUENCES');