Skip to content
October 19, 2015 / doganay

CREATE PRIVATE DATABASE LINK FOR ANOTHER USER USING DBMS_SYS_SQL.PARSE_AS_USER

declare
 uid number;
 sqltext varchar2(1000) := 'CREATE DATABASE LINK TEST CONNECT TO "TEST_USER" IDENTIFIED BY "pass" USING ''TEST_TNS''' ;
 myint integer;
begin
 select user_id into uid from all_users where username like 'MYUSER';
 myint:=sys.dbms_sys_sql.open_cursor();
 sys.dbms_sys_sql.parse_as_user(myint,sqltext,dbms_sql.native,UID);
 sys.dbms_sys_sql.close_cursor(myint);
end;
/

if you get ORA-01031, check create database link grant, grant if not granted:

CREATE DATABASE LINK to myuser;

Leave a comment