SELECT XMLElement ("ALIAS"
XMLAttributes ('Atributos' AS
"ALIAS"
'Atributos' AS
"ALIAS"),
XMLForest(Campo_Tabla1, Campo_Tabla2, Campo_Tabla3)) AS "ALIAS"
FROM Nombre_Tabla
WHERE Campo_Tabla = Valor_Campo_Tabla;
Por ejemplo:
SELECT XMLElement("Empleados",
XMLAttributes('Nombre_Emp' AS
"NOMBRE",
'Numero_Emp' AS
"Numero"),
XMLForest(Id_Emp, Apellido_Emp, Salario_Emp)) AS "RESULTADO"
FROM empleados
WHERE id_departmento = 20;
viernes, 19 de abril de 2013
jueves, 18 de abril de 2013
Crear directorios en Oracle (Privilegios y Ejemplo de Sintáxis)
Crear directorio:
Create or replace directory XML as 'c:\trabajo';
·
·
Creado directorios se muestran en
cualquiera dba_directories o all_directories.
·
No hay user_directories.
Otorgar privilegios:
Cuando un
«directorio» ha sido creado, los privilegios leer y escribir se pueden conceder en él:
create directory XML;
Grant read, write on directory XML to Roberto with grant option;
Ejemplo de sintáxis:
El
siguiente ejemplo muestra cómo crear directorios y UTL_FILE se pueden utilizar para escribir texto
en un archivo:
CREATE OR REPLACE DIRECTORY XML AS 'C:\Trabajo';
declare
f utl_file.file_type;
begin
f := utl_file.fopen('DIR_TEMP', 'something.txt', 'w');
utl_file.put_line(f, 'line one: some text');
utl_file.put_line(f, 'line two: more text');
utl_file.fclose(f);
end;
/
Directorio Oracle PL/SQL a XML
SELECT dbms_xmlgen.GETXML( ' select e.NUM_CUENTA
"Cuenta_Contable",
e.DES_CUENTAESP
"Descripcion"
FROM co_Catalogo
e
WHERE
cod_compania=01001001' ) FROM DUAL;
En este ejemplo se muestra el paquete de
oracle DBMS_XMLGEN.GETXML donde se va a hacer un SELECT pero no como contenido
si no como una cuerda…donde vamos a disponer de una tabla “e” con los campos
que deseamos convertir en XML y su respectivo alias, donde va a existir una
sentencia que debe de ser válida en la base de datos.
SELECT
xmlelement("CuentaContable",
xmlCONCAT
(xmlelement("Cuenta_Contable",e.NUM_CUENTA)
,xmlelement("Descripcion",e.DES_CUENTAESP)
,xmlelement("Moneda",e.Cod_moneda)
)) Registro
FROM
co_Catalogo e
WHERE
cod_compania= '01001001';
En este otro ejemplo observamos el
XMLELEMENT que es un elemento del XML, hay que recordar que un archivo XML se
divide por jerarquías, por ejemplo:
<Árbol <Ramas> </Ramas></Árbol>
En este ejemplo se le asigna al XML el
nombre o alias Registro que es el que se mostrará en el respectivo archivo.
EL XMLCONCAT sirve para concatenar de un
modo XML, mientras que un CONCAT simple se restringe a concatenar en forma de
contenido.
Procedimiento
para ejecutar un fichero Oracle en XML:
CREATE OR REPLACE PROCEDURE
UsuarioOra.exportacuentas_xml (compania varchar2) IS
CURSOR xmlcur IS
SELECT
xmlelement("CuentaContable",XMLATTRIBUTES(TIP_NIVEL),
xmlCONCAT
(xmlelement("Cuenta_Contable",e.NUM_CUENTA)
,xmlelement("Descripcion",e.DES_CUENTAESP)
,xmlelement("Moneda",e.Cod_moneda),
xmlelement("Movimientos",(select
xmlconcat
(xmlelement("fechadoc",to_Char(z.FEC_DOCUMENTO,'DD-MON-YEAR')),
xmlelement("Monto",z.Mon_monto)
)
from CO_DETALLED Z
where z.cod_compania=e.cod_compania
and
z.num_cuenta=e.num_cuenta)))
).getStringval()Registro
FROM CO_CATALOGO
E
WHERE cod_compania= compania;
XMLDATA CLOB;
Cadena VARCHAR2(32767);
file1 UTL_FILE.FILE_TYPE;
BEGIN
file1 :=
UTL_FILE.FOPEN('XML','prueba.xml','W',256);
UTL_FILE.PUT_LINE(file1,'');
For k in xmlcur loop
UTL_FILE.PUT_LINE(file1,
k.Registro);
end loop;
UTL_FILE.PUT_LINE(file1,'
');
UTL_FILE.FCLOSE(file1);
END;
lunes, 1 de abril de 2013
Crear un mantenimiento de base de datos Oracle Forms.
·
Nombre de la
forma.
·
Disparadores inteligentes (pre-form,
when-button-pressed, post-query).
·
Tipos de alerta de la forma.
·
Librería adjunta.
·
Bloques de datos de la forma.
·
Lienzos de la forma que muestra el
diseño.
·
Editores de la forma.
·
Lista de valores con los que se llena los campos del bloque.
·
Grupo de objetos de la forma.
·
Parámetros
de la forma.
·
Busca la ubicación actual del objeto.
·
Encripta código y maneja unidades de
programa (paquetes).
·
Clases de propiedades de la forma.
·
Grupo de registros donde se
relacionan la lista de valores.
·
Generador de reportes de la forma.
·
Atributos visuales de la forma.
·
Ventanas, se les puede asignar nombre
propio.
Códigos importantes dentro de un disparador inteligente:
When-timer-expired:
Declare
v_timer TIMER;
Begin
v_timer := Find_Timer('ROBERTO');
If NOT ID_NULL(v_timer) Then
:BK_DATOS.D_DES:=:SYSTEM.CURRENT_BLOCK||'
'||:SYSTEM.BLOCK_STATUS;
End If;
End;
When-new-form-instance:
DECLARE
hour_timer TIMER;
one_second NUMBER(4):=1000;
BEGIN
hour_timer:=
CREATE_TIMER('roberto',one_second,REPEAT);
END;
GO_BLOCK('BK_ACTIVOS');
EXECUTE_QUERY;
Pre-form:
:GLOBAL.ACTIVO:=NULL;
:GLOBAL.COMPANIA:=NULL;
Códigos importantes dentro de un bloque de datos
(triggers, ítems, relaciones):
Pre-query:
:BK_ACTIVOSINFO.NUM_ACTIVO:=:GLOBAL.ACTIVO;
:BK_ACTIVOSINFO.COD_COMPANIA:=:GLOBAL.COMPANIA;
Post-query:
DECLARE
V_DEPARTAMENTO
VARCHAR2(60);
V_TIPO_ACTIVO
VARCHAR2(60);
begin
AC_K_UTILITY.ACT_P_DEP
(:BK_ACTIVOSINFO.COD_DEPARTAMENTO, V_DEPARTAMENTO);
AC_K_UTILITY.ACT_P_TIPACT(:BK_ACTIVOSINFO.COD_TIPOACTIVO,V_TIPO_ACTIVO);
:BK_ACTIVOSINFO.D_DEPARTAMENTO:=V_DEPARTAMENTO;
:BK_ACTIVOSINFO.D_TIPOACTIVO:=V_TIPO_ACTIVO;
END;
When-button-pressed:
GO_BLOCK('BK_ACTIVOS');
When-button-pressed:
DECLARE
BEGIN
:GLOBAL.ACTIVO:=:BK_ACTIVOS.NUM_ACTIVO;
:GLOBAL.COMPANIA:=:BK_ACTIVOS.COD_COMPANIA;
GO_BLOCK('BK_ACTIVOSINFO');
DO_KEY('EXECUTE_QUERY');
END;
Canvas:
Las canvas o
lienzos es el diseño que le queramos dar a la forma.
LOV’s:
Lista de
valores con los que se cargan datos de la base de datos en el campo a cual
queramos que se carguen.
Record Groups:
Grupo de
registros que se relacionan la lista de valores para crear registros.
Windows:
Ventanas que
muestran las formas.
grupodivisoft.com
Suscribirse a:
Entradas (Atom)