我要写一个存储过程,将同一个数据库中不用用户可见的表进行insert 操作,请问这与同一个数据库同一个用户的表之间进行insert 操作有什么区别?我用的是pl\sql.
比如我用A登陆pl\sql,能看到表table_A.但看不到表table_B.我用B登陆能够看到表table_B,但看不到table_A.现在我要写一个存储过程将table_B的数据插入到table_A中.请问应该怎么写?

解决方案 »

  1.   

    可以用一个database link
    具体方法:
    登录A
    create database link gisinfo connect to B identified by B using'gis9i';
    其中gisinfo 是个数据库链接名 可以任意取
    gis9i是sid这样你在写存储过程的时候
    begin
    ........
     
    end;insert update delete 是加上B@gis9i即可希望能帮到你!
                                                  gisinfo
      

  2.   

    我不知道你说的是不是不同用户的意思,
    如果是,你需要得到另外一个用户对应表的访问授权,然后操作的时候只要在前面加 "user_name."  就可以了
      

  3.   

    建立一个有权利同时访问table_a和table_b的user C。
    在c下建立一个存储过程,执行insert into userB.table_b select * from userA.table_a;既可。
    A,B两个用户之间是不可能直接传递数据的,因为他们没有访问对方表的权限。
      

  4.   

    建立用户对table_a和table_b有select权限
    对table_b有insert权限就可以了
      

  5.   

    没有什么区别
    只要有权限就可以。
    如果是不同的数据库,要建立dblink。
      

  6.   

    同一个数据库可以使用同义词,或者直接赋查询的权限给用户也可以....
    不同的数据库可以使用dblin..