Erp100论坛's Archiver

xiangzhao 发表于 2008-7-12 14:29

oracle dblink 调用FUNCTION的问题

dblink调用FUNCTION,如果FUNCTION中包含后DML语言是不是就会报错啊。
我有两个数据库:A,B。
   在B数据库上新建个FUNCTION:
           create or replace function condy_test(param1 in varchar2) return integer is
  v_result integer;
begin
  insert into test(vdate) values (sysdate);
  commit;
  return(0);
end condy_test;

在个FUNCTION 在B库上测试是绝对没有问题的。
然后我在A数据库上,新建一个DBLINK.连接到B数据库。在A数据库通过DBLINK调用B数据库我刚建的FUNCTION会报错。

select CONDY_TEST@tccs_to_ucc('test') from dual;
会爆:ora-14551的错误。意思是不能把DML放在select query的查询语句中。
tccs_ucss的DBlink绝对也是没有问题。

我也尝试在B数据库上新建一个CONDY_TEST的同义词。然后在A数据库中调用新建的同义词也是爆同样的错。到底是怎么回事呢?

xiangzhao 发表于 2008-7-12 14:30

通过DB_LINK调用FUNCTION和本地的是一样的,只是中间要增加一些设置,DB_link,同义词等等,连包中的过程和函数也能调用。我的生产系统很多都是这样访问的。。。

页: [1]

Powered by Discuz! Archiver 7.0.0  © 2001-2007 Comsenz Inc.