A função do DBLINK: acesso de domínio cruzado ao banco de dados, você pode acessar diretamente a tabela de banco de dados correspondente, você pode migrar diretamente a tabela de banco de dados durante o backup
Instrução DBLINK de construção:
CRIAR [COMPARTILHADO] [PÚBLICO] link do banco de dados nome_do_link
[CONECTAR A [usuário] [usuário_atual] IDENTIFICADO PELA senha]
[AUTENTICADO PELO usuário IDENTIFICADO PELA senha]
[USANDO 'string_de_conexão']
public: public significa que todos os usuários do dblink criado podem ser usados. Se o usuário da conexão no dblink tem a permissão selecionar qualquer tabela, então todos os usuários podem acessar qualquer tabela do dblink, e apenas o usuário criado pode usá-la sem quaisquer parâmetros.
Verifique se o banco de dados tem DBLINK
select owner,object_name from dba_objects where object_type='DATABASE LINK';
ou
select * from dba_db_links;
Verifique se você tem permissão para criar DBLINK
Veja o usuário scott como exemplo
select * from user_sys_privs where privilege like upper('%DATABASE LINK%') AND USERNAME='scott';
Se a consulta não retornar dados, use sys ou login de usuário do sistema para conceder permissões
grant create public database link to scott;
Criar DBLINK
Crie um link chamado testlink, o banco de dados correspondente é o nome de usuário scott, a senha é 123456
1. No arquivo de configuração do banco de dados tnsnames.ora há um alias do banco de dados: orcl (nome de usuário: scott, senha: 123456)
O método de criação é o seguinte, usando aliases diretamente ao usar:
create public database link testlink connect to scott identified by '123456' USING 'ORCL'
2. Não há alias de banco de dados correspondente no arquivo de configuração do banco de dados tnsnames.ora: orcl (nome de usuário: scott, senha: 123456)
O método de criação é o seguinte, preencha o endereço IP do banco de dados correspondente usando
create database link 'linkname' connect to scott identified by '123456'
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)';
Exclua o DBLINK correspondente
drop databse link testlink
drop public databse link testlink
Use o DBLINK correspondente
Para acessar a tabela de aluno de outro banco de dados no banco de dados local, a instrução é a seguinte, outro testlink é o nome de DBLINK e outras operações DML são iguais, basta usar student @ testlink em vez do nome da tabela correspondente.
select * from student@testlink
1. Insira
insert into student@testlink values('id','name');
2. Modificar
update student@testlink set name='name' where id='id';
3. Excluir
delete from student@testlink where id='id';
Crie sinônimos para o DBLINK correspondente, fácil de usar e não permite que as pessoas saibam o nome do DBLINK
create synonym student for student@testlink;
Você pode usar diretamente student em vez de student @ tesklink na execução de instruções DQL e DML
select * from student;
insert into student values('id','name');
delete from student where id='id';
create synonym student for student;