Dada una url que apunta a un archivo alojado en el servidor web, ¿es posible leer los contenidos de esa url en un clob? Y si es así, ¿cómo?Cargando un archivo en un clob
5
A
Respuesta
6
Aquí hay un procedimiento que toma una URL y carga su contenido en una tabla.
El archivo web se recupera utilizando UTL_HTTP.GET_PIECES()
. Esto devuelve una matriz de cadenas. Si trabajas detrás de un firewall, deberás declarar tu proxy. Find out more about UTL_HTTP.
La disputa CLOB utiliza varios bits de la funcionalidad DBMS_LOB. El procedimiento declara una variable lob temporal, agrega las piezas de la matriz UTL_HTTP y luego la inserta en una tabla. Find out more about DBMS_LOB.
SQL> create or replace procedure pop_file_from_url
2 (p_url in varchar2)
3 is
4 tc clob;
5 lv_web_page utl_http.html_pieces;
6 begin
7
8 dbms_lob.createtemporary(tc, true);
9 dbms_lob.open(tc, dbms_lob.lob_readwrite);
10
11 lv_web_page := utl_http.request_pieces (p_url);
12
13 for i in 1..lv_web_page.count()
14 loop
15 dbms_lob.writeappend(tc, length(lv_web_page(i)) ,lv_web_page(i));
16 end loop;
17
18 insert into t23 values (1, tc);
19
20 dbms_lob.close(tc);
21 dbms_lob.freetemporary(tc);
22
23 end pop_file_from_url;
24/
Procedure created.
SQL>
Si, como yo, usted está en 11g tendrá que añadir la URL a una lista de control de acceso, de lo contrario se bloqueará la solicitud. Find out more about ACLs.
SQL> exec pop_file_from_url('stackoverflow.com')
BEGIN pop_file_from_url('stackoverflow.com'); END;
*
ERROR at line 1:
ORA-29273: HTTP request failed
ORA-06512: at "SYS.UTL_HTTP", line 1674
ORA-24247: network access denied by access control list (ACL)
ORA-06512: at "APC.POP_FILE_FROM_URL", line 11
ORA-06512: at line 1
SQL>
Después de añadir la dirección URL de Stackoverflow a mi ACL ahora puedo insertar el archivo en mi mesa:
SQL> exec pop_file_from_url('stackoverflow.com')
PL/SQL procedure successfully completed.
SQL> select id, dbms_lob.getlength(txt)
2 from t23
3/
ID DBMS_LOB.GETLENGTH(TXT)
---------- -----------------------
1 208226
SQL>
Cuestiones relacionadas
- 1. Cargando una clob holgazaneamente en hibernación
- 2. Javascript: cargando un archivo ... sin un archivo
- 3. Cargando dinámicamente un archivo DLL
- 4. Cargando un archivo csv en jQuery?
- 5. FileReference: cargando un archivo bloqueado en Windows
- 6. C# - ¿Cargando un archivo grande en un WPF RichTextBox?
- 7. Cargando un archivo .GIF animado del archivo JAR en ImageIcon
- 8. Prolog- cargando una biblioteca desde un archivo
- 9. Oracle: cargando un archivo xml grande
- 10. Carrierwave - "cargando" un archivo de una cadena
- 11. Cargando un archivo AAC/MP3 "manualmente"
- 12. Cargando un archivo relacionado con el archivo jar de ejecución
- 13. SQL - ¿Cómo se compara un CLOB
- 14. Cargando .xibs en un UIView
- 15. Cargando un archivo CSV en Core Data managed sqlite db
- 16. Cargando una imagen del nombre de archivo en un wx.Panel
- 17. Cargando Properties.Settings de un archivo diferente en tiempo de ejecución
- 18. Exportación de un CLOB a un archivo de texto usando Oracle SQL Developer
- 19. Cargando un archivo en un mapa de bits pero dejando intacto el archivo original
- 20. Cargando NSData en un UIWebView
- 21. Cargando un video en OpenCV en Python
- 22. Cargando un componente Yii personalizado
- 23. Cargando un archivo de propiedades del paquete Java
- 24. Cargando una tabla hash PowerShell desde un archivo?
- 25. Cargando UIView desde un archivo de punta sin conjeturas
- 26. MySQL LOAD DATA INFILE - Cargando un archivo sin clave principal
- 27. Cargando la plantilla de velocidad dentro de un archivo jar
- 28. Cargando un archivo .kml local usando google maps?
- 29. Cargando un hprof grande en jhat
- 30. Cargando un archivo de imagen Image.FromFile VS FileStream
Eso fue muy minucioso mi amigo. Realmente aprecio la ayuda. – JDS
No he podido probar el código todavía, pero la solución parece muy prometedora. – migu