Как получить доступ к обновленным записям из таблицы изображений через DB Link - PullRequest
0 голосов
/ 07 января 2020

Я создаю 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;

Как получить доступ к последним и обновленным записям по ссылке в базе данных?

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...