我通过dblink
选择数据的程序存在一些问题我可以正常选择源表并且过程成功编译但是当我运行此过程时我收到错误
create or replace procedure proc1 is
begin
execute immediate 'truncate table table1';
INSERT /*+ APPEND NOLOGGING PARALLEL */
INTO table1
SELECT smthng
FROM table1@dblink uo
LEFT JOIN table2@dblink uoc
ON uoc.id = uo.id
LEFT JOIN table3@dblink uos
ON uos.id = uoc.id;
COMMIT;
end;
SQL> execute proc1
begin proc1; end;
ORA-01017: invalid username/password; logon denied
ORA-02063: предшествующий line из dblink
ORA-06512: на "proc1", line 8
ORA-06512: на line 1
有任何解释吗?
答案 0 :(得分:1)
要解决这个问题,您需要知道您使用的是哪个版本的 Oracle 数据库,您需要向我们解释数据库链接是如何创建的。是公共链接吗?是匿名的吗?在查询中使用的所有表上指定的 DOP(并行度)是多少。谁在执行查询?它是您通过远程数据库链接使用的同一用户吗?此用户是否与在本地执行查询的用户具有相同的密码?
我可以更糟:你使用外部识别的 ops$-account 吗?还是这最后一个分配了密码?
最后但并非最不重要的是通过审计表检查无法登录到远程数据库的用户。告诉我这是您在本地查询中使用的同一用户吗?