declare
BEGIN INSERT INTO A.表1 SELECT * FROM B.表1;
COMMIT;EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
END;
------------------------------------------------------------------------------
CREATE OR REPLACE PROCEDURE xxx
ISBEGIN INSERT INTO A.表1 SELECT * FROM B.表1;
COMMIT;EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
END;
/
xxx编译报错 说是找不到A.表1
那为什么执行好用啊 应该如何解决
A B 为不同的用户 想把B的表1的数据插入到A的表1

解决方案 »

  1.   

    估计权限需要授权一下
    GRANT INDEX ON  "A"."表1" TO "B" WITH GRANT OPTION
      

  2.   

    授权了~
    还是报错
    提示错误变成没有权限了~ORA-01031
      

  3.   

    授权了~
    还是报错
    提示错误变成没有权限了~ORA-01031
      

  4.   

    --这样试试
    --在b用户下
    GRANT select ON "B"."表1" TO "A" WITH GRANT OPTION
    --在a用户下
    CREATE OR REPLACE PROCEDURE xxx
    ISBEGIN    INSERT INTO A.表1 SELECT * FROM B.表1;
        COMMIT;EXCEPTION
        WHEN OTHERS THEN
            ROLLBACK;
    END;
      

  5.   

    grant update,delete,insert on A.表1 to user
    grant update,delete,insert on B.表1 to user
    grant select on A.表1 to user
    grant select on B.表1 to user