sql >> Databáze >  >> RDS >> Oracle

Kopírování dat ze souboru do CLOB v Oracle

Kopírování dat ze souboru do CLOB v Oracle

Následující procedura copy_file_data_to_clob() ukazuje, jak číst text ze souboru a
uložit jej do 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_CHAR6_buffer );
BEGIN
-- vložte prázdný CLOB
INSERT INTO clob_content(
id, clob_column
) VALUES (
p_clob_id, EMPTY_CLOB()
);
-- získejte LOB lokátor CLOB
SELECT clob_column
INTO v_dest_clob
FROM clob_content
WHERE id =p_clob_id
PRO AKTUALIZACI;
-- otevřete soubor pro čtení textu (až v_amount znaků na řádek)
v_file :=UTL_FILE.FOPEN(p_directory, p_file_name, 'r', v_amount);
-- copy data ze souboru do v_dest_clob jeden řádek po řádku
LOOP
BEGIN
-- načte řádek ze souboru do v_char_buffer;
-- G ET_LINE() nezkopíruje znak nového řádku do
-- v_char_buffer
UTL_FILE.GET_LINE(v_file, v_char_buffer);
v_chars_read :=LENGTH(v_char_buffer);
-- připojte řádek do v_dest_clob
DBMS_LOB.WRITEAPPEND(v_dest_clob, v_chars_read, v_char_buffer);
-- přidat nový řádek do v_dest_clob, protože v_char_buffer;
-- hodnota ASCII pro nový řádek je 10, takže CHR ) vrátí nový řádek
DBMS_LOB.WRITEAPPEND(v_dest_clob, 1, CHR(10));
EXCEPTION
-- když v souboru nejsou žádná další data, ukončete
WHEN NO_DATA_FOUND THEN
EXIT;
END;
END LOOP;
-- zavřete soubor
UTL_FILE.FCLOSE(v_file);
DBMS_OUTPUT.PUT_LINE('Kopírování proběhlo úspěšně dokončeno.');
END copy_file_data_to_clob;
/

  1. Jak rozdělit hodnoty jednoho sloupce na více hodnot sloupců?

  2. Laravel 5 PDOException nemůže najít ovladač

  3. Přidružování tabulek pomocí databáze místností v Android Studiu

  4. Jak volat funkci Oracle s referenčním kurzorem jako out-parametrem z C#?