ver read guardar example ejemplos dbms_lob convert contenido consultar campo archivo oracle file-io plsql blob

oracle - read - Usando PL/SQL ¿cómo obtengo el contenido de un archivo en un blob?



select blob oracle (2)

Depende un poco de tu entorno. En Java podrías hacer algo como esto ...

// Need as OracleConnection in mConnection // Set an EMPTY_BLOB() String update = "UPDATE tablename"+ " SET blob_column = EMPTY_BLOB()"+ " WHERE ID = "+id; CallableStatement stmt = mConnection.prepareCall(update); stmt.executeUpdate(); // Lock the row FOR UPDATE String select = "BEGIN " + " SELECT " + blob_column " INTO ? " + " FROM " + tablename + " WHERE ID = ''" + id + "''" + " FOR UPDATE; " + "END;"; stmt = mConnection.prepareCall(select); stmt.registerOutParameter(1, java.sql.Types.BLOB); stmt.executeUpdate(); BLOB blob = (BLOB) stmt.getBlob(1); OutputStream bos = blob.setBinaryStream(0L); FileInputStream fis = new FileInputStream(file); // Code needed here to copy one stream to the other fis.close(); bos.close(); stmt.close(); mConnection.commit();

Pero realmente depende de qué entorno / herramientas estás usando. Se necesita más información.

Tengo un archivo. Quiero obtener sus contenidos en una columna blob en mi base de datos Oracle o en una variable blob en mi programa PL / SQL. ¿Cuál es la mejor manera de hacer eso?


Para hacerlo completamente en PL / SQL, el archivo debería estar en el servidor, ubicado en un directorio que necesitaría definir en la base de datos. Crea los siguientes objetos:

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; /