读书人

咨询一个存储过程中调用dblink的有关问

发布时间: 2013-04-22 16:01:35 作者: rapoo

咨询一个存储过程中调用dblink的问题

存储过程中有段代码

iv_temp_tab := 'temp_0407@dblink'; ----这是一个远程表。

当我insert本地一个表的时候出问题
insert into tmp_local
select * from iv_temp_tab;
报错 表或者视图不存在。请教一下大家,这个地方该如何写,因为这个表明会变动,所以我只能这么写。
也就是在催出过程中如何调用已经设置成变量的远程表。

[解决办法]

iv_temp_tab := 'temp_0407@dblink'; ----这是一个远程表。
v_sql long;

v_sql:='insert into tmp_local
select * from ''
[解决办法]
iv_temp_tab
[解决办法]
''';

如果是动态的上面就不要写死!直接写成入参的形式
[解决办法]
execute immediate 'insert into tmp_local
select * from '
[解决办法]
iv_temp_tab;


正规系统不要动不动用dblink,自己做接口表或者程序接口同步数据,两边事务不一致会把自己玩死的,稍微大点数据量也会很惨。

读书人网 >oracle

热点推荐