2010-05-11 7 views

उत्तर

6

यहां एक प्रक्रिया है जो एक यूआरएल लेती है और इसकी सामग्री को तालिका में लोड करती है।

वेब फ़ाइल को UTL_HTTP.GET_PIECES() का उपयोग करके पुनर्प्राप्त किया गया है। यह तारों की एक सरणी देता है। यदि आप फ़ायरवॉल के पीछे काम कर रहे हैं तो आपको अपनी प्रॉक्सी घोषित करने की आवश्यकता होगी। Find out more about UTL_HTTP

सीएलओबी wrangling डीबीएमएस_LOB कार्यक्षमता के विभिन्न बिट्स का उपयोग करता है। प्रक्रिया एक अस्थायी लॉब चर घोषित करती है, इसमें UTL_HTTP सरणी के टुकड़े जोड़ती है और फिर अंत में इसे एक तालिका में सम्मिलित करती है। 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> 

हैं, मेरे जैसे, आप 11g आप एक प्रवेश नियंत्रण सूची में URL जोड़ने की आवश्यकता होगी पर हैं, अन्यथा अनुरोध अवरुद्ध हो जाएगा। 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> 

मेरी एसीएल के लिए StackOverflow के लिए URL जोड़ने के बाद अब मैं अपने तालिका में फ़ाइल सम्मिलित कर सकते हैं:

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> 
+0

कि मेरे दोस्त बहुत ही गहन था। मैं वास्तव में सहायता के लिए आभारी हूं। – JDS

+0

मैं अभी तक कोड का परीक्षण नहीं कर सका, लेकिन समाधान बहुत ही आशाजनक दिखता है। – migu

संबंधित मुद्दे