sql >> Database teknologi >  >> RDS >> Oracle

Ved hjælp af PL/SQL, hvordan får jeg en fils indhold ind i en klat?

For at gøre det helt i PL/SQL, skal filen være på serveren, placeret i en mappe, som du skal definere i databasen. Opret følgende objekter:

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. Hvordan bruger man % operator fra udvidelsen pg_trgm?

  2. "Falal intern forbindelsesfejl" ved udførelse af en indbygget kompileret lagret procedure i SQL Server 2019 (kendt fejl)

  3. Kunne du drage fordel af en tilpasset databaseapplikation?

  4. Hvordan nulstiller jeg postgresql 9.2 standardbruger (normalt 'postgres') adgangskode på mac os x 10.8.2?