All technological notes.
Database Link:
The other database need not be an Oracle Database system.
Oracle Heterogeneous Services.private database link:
public database link
Prerequisites:
private database link, you must have the CREATE DATABASE LINK system privilege.public database link, you must have the CREATE PUBLIC DATABASE LINK system privilegerefer to tables, views, and PL/SQL objects in the other database:
@dblinkname to the table, view, or PL/SQL object name.
CREATE DATABASE LINK <database_link_name>
CONNECT TO <user> IDENTIFIED BY <pwd>
USING '<connect_string_for_remote_db>';
# connect_string_for_remote_db: tnsname entry
dba_db_links

# confirm pdb creation
select name, open_mode from v$pdbs;
alter session set container=prod1;
show con_name;
# grant dba role to pdb admin
grant dba to prod1_admin;

# confirm pdb creation
select name, open_mode from v$pdbs;
alter session set container=prod2;
show con_name;
# grant dba role to pdb admin
grant dba to prod2_admin;
tnsname.ora
PROD1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = test.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = prod1.com)
)
)
PROD2 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = test.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = prod2.com)
)
)


show con_name;
create table employees (id number, name varchar2(100));
insert into employees values (1, 'adam');
commit;
select * from employees;
connect prod1_admin@prod1;
show con_name;
show user;
# create a private database link
create database link read_prod2
connect to prod2_admin identified by welcome
using 'prod2';
# query using db link
select * from employees@read_prod2;
# ID NAME
# ---------- ------------------------------
# 1 adam
