Tetapi batasannya di sini adalah dengan UTL_HTTP.read_text
yang mengembalikan hasilnya sebagai VARCHAR2
(Anda memiliki implisit konversi di sini).
Untuk mengambil objek teks besar dari web dengan mudah, Anda mungkin perlu HttpUriType.getClob
Jika karena alasan tertentu Anda ingin tetap menggunakan UTL_HTTP
, Anda harus mengulang untuk membaca potongan data Anda demi potongan. Sesuatu seperti itu:
BEGIN
...
l_clob CLOB;
l_text VARCHAR2(32767);
BEGIN
DBMS_LOB.createtemporary(l_clob, FALSE);
...
l_http_request := UTL_HTTP.begin_request(your_URI);
l_http_response := UTL_HTTP.get_response(l_http_request);
-- Loop to read data chunk by chunk up to the end
BEGIN
LOOP
UTL_HTTP.read_text(l_http_response, l_text, 32766);
DBMS_LOB.writeappend (l_clob, LENGTH(l_text), l_text);
END LOOP;
EXCEPTION
WHEN UTL_HTTP.end_of_body THEN
UTL_HTTP.end_response(l_http_response);
END;
Lihat http:// oracle-base.com/articles/misc/retrieving-html-and-binary-into-tables-over-http.php vor berbagai contoh