各位高手,
    我在oracle中,想做一个数据同步的工作,在同一台机器上,两个不同的用户(a & b) 我可不可以在 a 里写一个存储过程里面直接调用 b.**表?

解决方案 »

  1.   

    可能没有说明白,就是我 a 表中创建的 procedures,里面可不可以写另外一个用户的另外一张表?
      

  2.   

    可以的,如果同一台机器的话就加上用户前缀
    如:
    select * from b.tablename
      

  3.   

    直接这样写SQL 是可以的,可是我写在一个procedures里就不行了,这是为什么呢?
      

  4.   

    CREATE OR REPLACE PROCEDURE sy_user IS
    curtime nchar(23);
    BEGIN
         select to_char(current_date,'yyyy-mm-dd hh24:mi:ss') into curtime from dual;
         
         delete from SECSCOPEPACKAGE where userid in (select userid from secuser where loginname not in (select userid from int_db.PORTAL_USER) and userid<>'sa');
           
    END sy_user;
    我把代码贴出来了,其中 int_db.portal_user,是另外一个用户里面的另一张表,我运行上面这段代码,就会提示我找不到int_db.portal_user,这个表!那位高手帮忙解决一下阿
      

  5.   

    用个DBLINK或者是给a用户访问b用户该数据表的权限.否则会出错.