Oracle - XMTYP

 
Vista:

XMTYP

Publicado por Ricardo (7 intervenciones) el 24/12/2008 14:26:18
Hola amigos del foro
tengo un archivo.XML, que quiero cargarlo en una campo tipo SYS.XMLTYPE, he encontrado que la manera de cargar para este tipo de dato de esta manera
insert into addrbook values
('Roger', sys.XMLType.createXML(
'<ACARD CREATEDBY="raj">
<EMAIL>[email protected]</EMAIL>
<WPHONE>111-1234</WPHONE>
<WPHONE>111-5678</WPHONE>
<CELL>111-3342</CELL>
<ADDRESS>
<LINE1>123 Main Street</LINE1>
<CITY>Atlanta</CITY>
<STATE>GA</STATE>
<ZIP>33333</ZIP>
</ADDRESS>
<COMMENT>Works the night shift</COMMENT>
</ACARD>'),
sysdate);
pero lo que quiero es cargarlo pero enviandole el archivo XML,
me pueden ayudar por favor

Saludos
Ricardo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:XMTYP

Publicado por Carlos (17 intervenciones) el 29/12/2008 11:10:39
Hola.
Para cargarlo hay varias opciones. No comentas qué tipo de carga será (interactiva, batch,...) pero hay varias soluciones.

Las más sencillas utilizan SQL y/o PL/SQL, aunque todas necesitan tarea de administración en la base de datos.

Te adjunto el link a la guía de desarrollador de XML DB, te interesa sobre todo el capítulo 3, el "Loading XML content ...".

http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14259/toc.htm

También la guía de de paquetes y tipos, te podría interesar el DBMS_LOB.

http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14258/toc.htm

En resumen, deberías crear un directorio, cargar el contenido del XML, convertirlo a XMLType e insertarlo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:XMTYP

Publicado por Ricardo (7 intervenciones) el 30/12/2008 16:53:41
Hola carlos
gracias por la información, ahora voy a probarlo y ya te digo algo

Saludos
y buen nuevo año 2009.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:XMTYP

Publicado por Ricardo (7 intervenciones) el 31/12/2008 10:31:31
Hola Carlos
estuve revisando los datos que me distes, pero tengo un problema que estoy buscando por alli y no encuentro porque puede suceder ...... sabes cual es el error?

CREATE TABLE mytable2 OF XMLType

CREATE OR REPLACE DIRECTORY xmldir AS 'C:XMLDIR'
INSERT INTO mytable2 VALUES (XMLType(bfilename('XMLDIR', 'data.xml'), nls_charset_id('AL32UTF8')));

ORA-06553: PLS-306: número o tipos de argumentos erróneos al llamar a 'XMLTYPE'

Lo estoy haciendo con el TOAD 9.6, tenemos instalados el ORACLE 10, pero tengo instalado el cliente 9.

Saludos

Ricardo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:XMTYP

Publicado por Carlos (17 intervenciones) el 07/01/2009 12:22:27
Hola, Ricardo.
Lo que puede estar sucediendo es que la llamada a "bfilename" esté devolviendo nulo porque no puede acceder al fichero "data.xml" en el directorio "XMLDIR".

Por favor, comprueba si el directorio "XMLDIR" está correctamente creado y si contiene un fichero "data.xml".
En el fragmento que has enviado, xmldir está definido como "C:XMLDIR", no se si ha sido problema de transcripción o está hecho definidio así realmente. Imagino que debería ser "C:XMLDIR", ya que el significado de "C:XMLDIR" es diferente para el sistema operativo.

Lo dicho, comprueba si el directorio está bien creado y si puedes acceder al fichero. Yo haría algo así para ver si puede localizar el fichero (es decir, si puede leerlo). No he puesto control de errores porque interesa que muestre las excepciones, y no controlo el cierre de fichero en excepción ya que si se ha abierto, la única posibilidad de que falle es al cerrar el fichero, y no tiene sentido que intente repetir la operación que ha fallado.

DECLARE
w_file UTL_FILE.FILE_TYPE;
BEGIN
w_file := UTL_FILE.fopen ('XMLDIR','data.xml','r');
UTL_FILE.fclose (w_file);
END;

Espero que te ayude.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:XMTYP

Publicado por RICARDO (7 intervenciones) el 12/01/2009 15:06:43
existe el directorio c:CMLDIR y el archivo DATA.XML, estan en mi ordenador, esto correcto, ahora la ultima instrucción que has puiesto me sale error

ORA-29283: operación de archivo no válida
ORA-06512: en "SYS.UTL_FILE", línea 449
ORA-29283: operación de archivo no válida
ORA-06512: en línea 4

No entiendo que esta pasando, en yteoria deberia de funcionar, podria ser algo ajjeno a ORACLE? quizas el TOAD que tengo?, algo que me falte instalar del cual no tengo conocimiento? dame alguna pista que no lo veo claro

Saludos ,

Ricardo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:XMTYP

Publicado por RICARDO (7 intervenciones) el 13/01/2009 11:23:40
puede ser que me falte instalar algo, configurar algo que no haya contemplado.... dime que es lo que tendria que tener instalado y configurado ...... te va bien q1ue nos intercambiemos información via correo, mi correo es [email protected]

Saludos

Ricardo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:XMTYP

Publicado por Carlos (17 intervenciones) el 13/01/2009 16:43:50
Hola, Ricardo.
Por el error que te da, el problema podría ser de permisos sobre el objeto directorio.

Por favor, haz lo siguiente:

Grant READ,WRITE ON DIRECTORY XMLDIR TO <pon aquí el nombre del usuario de BD al que das permisos, que será con el que ejecutas el código>

Puede que no necesites permiso "WRITE" porque no vayas a escribir a través de ese directorio, en ese caso sólo has de especificar el READ.

Espero que esto te sirva.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:XMTYP

Publicado por RICARDO (7 intervenciones) el 13/01/2009 18:18:52
Hola,
buenas noticias ya a salido, me dijistes que mire lo de crear bien el directorio y dejar alli el archivo, pero resulta que ese directorio y archivo deberia de estar en el ordenador donde se encuentra instalado el ORACLE y claro no tenia permisos, ahora ya tengo todos los permisos y creada la carpeta en el servidor de oracle, ahora si funciona ....
pero siempre el pero, logra insertarlo pero siempre y cuando no este la cabecera <?xml version="1.0" encoding="utf-8"?> .....
sabes como quitar esta linea, porque ahora lo he realizado manual.

Saludos

Ricardo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:XMTYP

Publicado por Carlos (17 intervenciones) el 14/01/2009 09:50:14
Hola, Ricardo.
Cierto, Oracle sólo puede acceder a los archivos "visibles" desde el servidor Oracle. Es decir, los directorios locales del servidor o algún otro directorio montado en red y al que se pueda acceder desde el mismo.

De hecho leyendo otra vez tu correo he visto que decías que el fichero estaba "en tu ordenador", debería haberlo leído con más atención.

En cuanto al problema que me comentas, ¿qué mensaje de error te produce?.

Un saludo,
Carlos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:XMTYP

Publicado por Ricardo (7 intervenciones) el 22/01/2009 17:10:26
Gracias Carlos por todo, la información de la web que me diste es correcto ya me salio, tenia yo algunos errores, pero ya lo tengo, funciona con las indiucaciones que me distes....
muchas gracias otra vez

Saludos

Ricardo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar