Копиране на данни от файл в CLOB в Oracle
Следната процедура copy_file_data_to_clob() показва как да четете текст от файл и
да го съхранявате в CLOB:
СЪЗДАЙТЕ ПРОЦЕДУРА 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_37 VAR_CHAR );
BEGIN
-- вмъкнете празен CLOB
INSERT INTO clob_content(
id, clob_column
) VALUES (
p_clob_id, EMPTY_CLOB()
);
-- вземете LOB локатора на CLOB
ИЗБЕРЕТЕ clob_column
INTO v_dest_clob
ОТ clob_content
WHERE id =p_clob_id
ЗА АКТУАЛИЗИРАНЕ;
-- отворете файла за четене на текст (до v_amount знаци на ред)
v_file :=UTL_FILE.FOPEN(p_directory, p_file_name, 'r', v_amount);
-- копие данните от файла във 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( ) връща нов ред
DBMS_LOB.WRITEAPPEND(v_dest_clob, 1, CHR(10));
ИЗКЛЮЧЕНИЕ
-- когато няма повече данни във файла, излезте
КОГАТО ТОГАВА NO_DATA_FOUND
ИЗХОД;
КРАЙ;
КРАЙ LOOP;
-- затворете файла
UTL_FILE.FCLOSE(v_file);
DBMS_OUTPUT.PUT_LINE('Копирането успешно завършено.');
END copy_file_data_to_clob;
/
-
Грешка при изключване на PDB ORA-17528
-
Как да изпълним процедура с процедурата DBMS_SCHEDULER.CREATE_JOB
-
Заявка е зададена в Concurrent Manager
-
Как да инсталирате ODP.NET 2.111 и ODP.NET 4.112 в една и съща машина рамо до рамо, докато и двете сочат към един и същ сървър на база данни
-
Каква е разликата между 'YYYY' и 'RRRR' в Oracle SQL