Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Menyalin Data dari File ke CLOB di Oracle

Menyalin Data dari File ke CLOB di Oracle

Prosedur copy_file_data_to_clob() berikut menunjukkan cara membaca teks dari file dan
menyimpannya dalam 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_buffer VARCHAR2(3276767 );
BEGIN
-- masukkan CLOB kosong
INSERT INTO clob_content(
id, clob_column
) VALUES (
p_clob_id, EMPTY_CLOB()
);
-- dapatkan LOB locator dari CLOB
SELECT clob_column
INTO v_dest_clob
FROM clob_content
WHERE id =p_clob_id
UNTUK UPDATE;
-- buka file untuk membaca teks (hingga v_jumlah karakter per baris)
v_file :=UTL_FILE.FOPEN(p_directory, p_file_name, 'r', v_amount);
-- copy data dari file ke v_dest_clob satu baris pada satu waktu
LOOP
BEGIN
-- baca satu baris dari file ke v_char_buffer;
-- G ET_LINE() tidak menyalin karakter baris baru ke
-- v_char_buffer
UTL_FILE.GET_LINE(v_file, v_char_buffer);
v_chars_read :=LENGTH(v_char_buffer);
-- tambahkan baris ke v_dest_clob
DBMS_LOB.WRITEAPPEND(v_dest_clob, v_chars_read, v_char_buffer);
-- tambahkan baris baru ke v_dest_clob karena v_char_buffer;
-- nilai ASCII untuk baris baru adalah 10, jadi CHR(10 ) mengembalikan baris baru
DBMS_LOB.WRITEAPPEND(v_dest_clob, 1, CHR(10));
EXCEPTION
-- ketika tidak ada lagi data dalam file maka keluar
KETIKA NO_DATA_FOUND THEN
EXIT;
END;
END LOOP;
-- tutup file
UTL_FILE.FCLOSE(v_file);
DBMS_OUTPUT.PUT_LINE('Salin berhasil selesai.');
END copy_file_data_to_clob;
/

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. periksa tanggal valid yang dideklarasikan di varchar2

  2. Kesalahan SQL:tabel atau tampilan ORA-00942 tidak ada

  3. Bagaimana cara mendapatkan karyawan dengan manajer mereka

  4. Berapa ukuran default input varchar2 ke prosedur tersimpan Oracle, dan dapatkah diubah?

  5. Pengguna skema Oracle tidak dapat membuat tabel dalam prosedur