Best way to handle LOBs in Oracle distributed databases

左心房为你撑大大i 提交于 2019-12-02 23:12:15

Yeah, it is messy, I can't think of a way to avoid it though.
You could hide some of the messiness from the client by putting the temporary table creation in a stored procedure (and using "execute immediate" to create they table)
One thing you will need to watch out for is left over temporary tables (should something fail half way through a session, before you have had time to clean it up) - you could schedule an oracle job to periodically run and remove any left over tables.

user2015502

The best solution by using a query as below, where column_b is a BLOB:

SELECT (select column_b from sample_table@TEST_LINK) AS column_b FROM DUAL

You could use materalized views to handle all the "cache" management. It´s not perfect but works in most cases :)

For query data, the solution of user2015502 is the smartest. If you want to insert or update LOB's AT the remote database (insert into xxx@yyy ...) you can easily use dynamic SQL for that. See my solution here:

Do you have a specific scenario in mind? For example, if the LOB holds files, and you are on a company intranet, perhaps you can write a stored procedure to extract the files to a known directory on the network and access them from there.

In this specific case can the only way the two systems can communicate is using the dblink.

Also, the table solution is not that terrible, it's just messy to have to "cache" the data on my side of the dblink.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!