Use DB_LINK para acessar diretamente os dados da tabela em outro banco de dados

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;

 

Acho que você gosta

Origin blog.csdn.net/springlan/article/details/106293124
Recomendado
Clasificación