Я создаю publi c ссылку на базу данных в базе данных 11g для доступа к таблице изображений с другого сервера базы данных 11g. Я нашел пользовательскую функцию для выбора BLOB-таблиц. Когда я вставляю новые записи в таблицы изображений и пытаюсь выбрать таблицу изображений через ссылку на базу данных и пользовательскую функцию, извлекаются только старые записи.
Пользовательская функция для столбцов BLOB:
create or replace function GETBLOBVIADBLINK
( dblnk in varchar2
,tbl in varchar2
,col in varchar2)
return blob
is
retval blob;
tmpraw raw(2000);
tmplen number;
tmpchk number;
chksize number;
begin
--preset vars
chksize:=2000;
dbms_lob.createtemporary (retval,true);
execute immediate 'select dbms_lob.getlength@'||dblnk||' ('||col||') from '||tbl||'@'||dblnk||'' into tmplen;
-- precalc
tmpchk:=floor(tmplen/chksize);
-- applicate frist chunks
for i in 0 .. tmpchk-1
loop
execute immediate 'select dbms_lob.substr@'||dblnk||'('||col||','||chksize||','||((i*chksize)+1)||') from '||tbl||'@'||dblnk||'' into tmpraw;
dbms_lob.append(retval,tmpraw);
end loop;
-- applicate last entry
if (tmplen-(tmpchk*chksize)) > 0 then
execute immediate 'select dbms_lob.substr@'||dblnk||'('||col||','||(tmplen-(tmpchk*chksize))||','||((tmpchk*chksize)+1)||') from '||tbl||'@'||dblnk||'' into tmpraw;
dbms_lob.append(retval,tmpraw);
end if;
return retval;
end;
Выберите команду:
SELECT m.column
,getblobviadblink('dblink','table_name','column_name') image
FROM table_name@dblink m;
Как получить доступ к последним и обновленным записям по ссылке в базе данных?
Спасибо