Oracle में किसी फ़ाइल से डेटा को CLOB में कॉपी करना
निम्न copy_file_data_to_clob() प्रक्रिया दिखाती है कि किसी फ़ाइल से टेक्स्ट कैसे पढ़ा जाए और
उसे एक CLOB में स्टोर किया जाए:
CREATE PROCEDURE copy_file_data_to_clob(
p_clob_id INTEGER,
p_directory VARCHAR2,
p_file_name VARCHAR2
) AS
v_file UTL_FILE.FILE_TYPE;
v_chars_read INTEGER;
v_dest_clob CLOB;
v_amount INTEGER :=32767;
v_char(32767 VARCHAR) );
BEGIN
-- एक खाली CLOB डालें
clob_content में डालें(
id, clob_column
) VALUES (
p_clob_id, EMPTY_CLOB()
);
-- CLOB का LOB लोकेटर प्राप्त करें
clob_column चुनें
v_dest_clob में
clob_content से
जहां id =p_clob_id
अपडेट के लिए;
-- पाठ पढ़ने के लिए फ़ाइल खोलें (प्रति पंक्ति v_amount वर्णों तक)
v_file :=UTL_FILE.FOPEN(p_directory, p_file_name, 'r', v_amount);
-- copy फ़ाइल से डेटा एक बार में v_dest_clob एक पंक्ति में
LOOP
BEGIN
-- फ़ाइल से एक पंक्ति को v_char_buffer में पढ़ें;
-- G ET_LINE() न्यूलाइन कैरेक्टर को इसमें कॉपी नहीं करता है
-- v_char_buffer
UTL_FILE.GET_LINE(v_file, v_char_buffer);
v_chars_read :=LENGTH(v_char_buffer);
-- संलग्न करें लाइन टू v_dest_clob
DBMS_LOB.WRITEAPPEND(v_dest_clob, v_chars_read, v_char_buffer);
-- v_dest_clob में एक नई लाइन जोड़ें क्योंकि v_char_buffer;
-- न्यूलाइन के लिए ASCII मान 10 है, इसलिए CHR(10 ) न्यूलाइन देता है
DBMS_LOB.WRITEAPPEND(v_dest_clob, 1, CHR(10));
EXCEPTION
-- जब फ़ाइल में और कोई डेटा न हो तो बाहर निकलें
जब NO_DATA_FOUND तब
EXIT;
END;
END LOOP;
--फ़ाइल बंद करें
UTL_FILE.FCLOSE(v_file);
DBMS_OUTPUT.PUT_LINE('Copy सफलतापूर्वक कॉपी करें पूर्ण।');
END copy_file_data_to_clob;
/