Я начну с некоторого кода ...
CREATE OR REPLACE PROCEDURE LOAD_IMAGE_INTO_TABLE (
imgDir varchar2
, imgName varchar2
, destTable varchar2
, destIndex varchar2
, destBlob varchar2)
AS
fHnd bfile;
b blob;
srcOffset integer := 1;
dstOffset integer := 1;
BEGIN
dbms_lob.CreateTemporary( b, true );
fHnd := BFilename( imgDir, imgName );
dbms_lob.FileOpen( fHnd, DBMS_LOB.FILE_READONLY );
dbms_lob.LoadFromFile( b, fHnd, DBMS_LOB.LOBMAXSIZE, dstOffset, srcOffset );
--insert into (Select * From user_tables Where table_name = destTable) values(imgName,b);
--insert into destTable (destIndex, destBlob) values( imgName, b );
commit;
dbms_lob.FileClose( fHnd );
END LOAD_IMAGE_INTO_TABLE;
Как вы можете видеть, я пытаюсь создать процедуру, которая помещает изображение в таблицу. Имя целевой таблицы и имена столбцов (для imgname и blobfile) будут заданы в качестве параметров.
Оба способа, которые я пробовал, не сработали. (см. --insert (...) в коде)
Может быть, у вас есть идеи, как решить эту проблему?
Заранее спасибо.