copy Bookmark http://space.itpub.net/10159839
上一篇 / 下一篇 2008-01-18 10:39:09 / 个人分类:数据库(oracle)
调用远程procedure的2个问题昨天小组的开发人员在做一个项目的etl时候,问了关于调用远程procedure的问题,如下:
问题一:因在etl中,第一步就需要执行远程db上的一个procedure,是否可以在本地db的 procedure上调用远程某一db上的procedure? 答:二台db建dblink后,可在本地procedure中调用,用procedure_name@dblink_name 即可,在sqlplus中,直接用execprocedure_name@dblink_name。 问题二:有多个远程db需要做上面的事情,是否可以在本地procedure中传递dblink参数, 根据dblink参数来确定调用哪一个远程db的过程? 答:可以,需要用到动态sql语句,在procedure中调用如下sql语句,execute immedia te 'select ''procedure_name@'' ||'''v_dblink_name'' from dual';其中v_dblin k_name 为过程传递的参数,这样可以在一个过程中调用多个远程过程,不需要每一 个远程过程用一个过程来调用。注意:直接用后面的语句会报错的Execute immedia te ‘procedure_name@’||v_dblink_name,因为动态sql要求 execute immediate 后 面是一个sql语句的字符串。
导入论坛 引用链接 收藏 分享给好友 推荐到圈子 管理 举报
TAG: 动态sql
评分:0
显示全部
内容
昵称
验证
提交评论