Étant donné qu'une URL pointe sur un fichier hébergé sur le serveur Web, est-il possible de lire le contenu de cette URL dans un clob? Et si oui, comment?Chargement d'un fichier dans un clob
Répondre
Voici une procédure qui prend une URL et charge son contenu dans une table.
Le fichier Web est récupéré à l'aide de UTL_HTTP.GET_PIECES()
. Cela retourne un tableau de chaînes. Si vous travaillez derrière un pare-feu, vous devrez déclarer votre proxy. Find out more about UTL_HTTP.
La querelle CLOB utilise divers bits de la fonctionnalité DBMS_LOB. La procédure déclare une variable lob temporaire, y ajoute les éléments du tableau UTL_HTTP, puis l'insère finalement dans une table. 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, comme moi, vous êtes sur 11g, vous devrez ajouter l'URL à une liste de contrôle d'accès, sinon sera bloqué la demande. 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>
Après avoir ajouté l'URL StackOverflow à mon ACL je peux maintenant insérer le fichier dans ma table:
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>
- 1. Récupère les données CLOB dans un fichier texte/xml
- 2. Pour télécharger un fichier Excel sous forme de clob
- 3. VB6 Oracle Récupération Clob dans un tableau
- 4. Passer une CLOB dans un. NET dll
- 5. Paresseusement charger un clob en hibernation
- 6. Chargement d'une ressource dans un fichier JAR
- 7. Chargement des données dans une table contenant le type de données clob, à partir d'un fichier plat
- 8. Champ AdoNetAppender et Clob
- 9. convertir clob en varchar2
- 10. Exportation d'une CLOB dans un fichier texte à l'aide d'Oracle SQL Developer
- 11. CLOB écrire avec OO4O
- 12. Oracle clob à String dans JSP
- 13. Chargement d'un modèle dans un fichier cron, dans Rails
- 14. PL/SQL Array to CLOB
- 15. Performance atteinte avec CLOB/TEXT?
- 16. Hibernate cultures valeurs clob curieusement
- 17. Chargement de fichier XNA
- 18. Chargement d'un modèle de vélocité dans un fichier jar
- 19. Liquibase - chargement de nombreux déclencheurs Oracle dans un fichier
- 20. Cocoa-Touch - Le chargement d'un fichier texte dans un tableau
- 21. Chargement d'un fichier XML crypté dans un jeu de données
- 22. Chargement du texte d'un fichier dans un tableau bidimensionnel (C++)
- 23. Chargement d'un fichier dans un varbinary avec SQL Management Studio
- 24. Chargement et enregistrement d'une classe dans un fichier binaire
- 25. Les séquences d'échappement sont-elles conservées dans CLOB?
- 26. Chargement d'un fichier texte dans ASP.NET
- 27. QtRuby: chargement du fichier HTML dans QTextEdit
- 28. Chargement du fichier texte ISO8851 dans TextField()
- 29. problème dans le fichier de chargement
- 30. Chargement du fichier dans Flex sans AIR?
C'était très complet mon ami. J'apprécie vraiment l'aide. – JDS
Je n'ai pas encore pu tester le code, mais la solution semble très prometteuse. – migu