Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Używając PL/SQL, w jaki sposób mogę umieścić zawartość pliku w obiekcie blob?

Aby zrobić to w całości w PL/SQL, plik musiałby znajdować się na serwerze w katalogu, który należałoby zdefiniować w bazie danych. Utwórz następujące obiekty:

CREATE OR REPLACE DIRECTORY
    BLOB_DIR
    AS
    '/oracle/base/lobs'
/



CREATE OR REPLACE PROCEDURE BLOB_LOAD
AS

    lBlob  BLOB;
    lFile  BFILE := BFILENAME('BLOB_DIR', 'filename');

BEGIN

    INSERT INTO table (id, your_blob)
        VALUES (xxx, empty_blob())
        RETURNING your_blob INTO lBlob;

    DBMS_LOB.OPEN(lFile, DBMS_LOB.LOB_READONLY);

    DBMS_LOB.OPEN(lBlob, DBMS_LOB.LOB_READWRITE);

    DBMS_LOB.LOADFROMFILE(DEST_LOB => lBlob,
                          SRC_LOB  => lFile,
                          AMOUNT   => DBMS_LOB.GETLENGTH(lFile));

    DBMS_LOB.CLOSE(lFile);
    DBMS_LOB.CLOSE(lBlob);

    COMMIT;

END;
/


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy istnieje najlepszy sposób na uniknięcie wykonywania procesu więcej niż raz w Oracle?

  2. Hierarchiczne pytanie SQL

  3. Różnica między literałami N'String' i U'String' w Oracle

  4. Instrukcja UPDATE w Oracle przy użyciu SQL lub PL/SQL do aktualizacji TYLKO pierwszego zduplikowanego wiersza

  5. Jaka jest domyślna nazwa ograniczenia w Oracle?