Utilice DB_LINK para acceder directamente a los datos de la tabla en otra base de datos

El rol de DBLINK: acceso entre dominios a la base de datos, puede acceder directamente a la tabla de la base de datos correspondiente, puede migrar directamente la tabla de la base de datos durante la copia de seguridad

Construir declaración DBLINK:

CREAR [COMPARTIDO] [PUBLIC] enlace de base de datos nombre_enlace
  [CONECTAR A [usuario] [actual_usuario] IDENTIFICADO POR contraseña] 
  [AUTENTICADO POR usuario IDENTIFICADO POR contraseña] 
  [USANDO 'connect_string']

public: public significa que se pueden usar todos los usuarios del dblink creado. Si el usuario de conexión en dblink tiene el permiso de seleccionar cualquier tabla, entonces todos los usuarios pueden acceder a cualquier tabla de dblink, y solo el usuario creado puede usarlo sin ningún parámetro.

Verifique que la base de datos tenga DBLINK

select owner,object_name from dba_objects where object_type='DATABASE LINK';

o

select * from dba_db_links;

Compruebe si tiene permiso para crear DBLINK

Tome al usuario de Scott como ejemplo

select * from user_sys_privs where privilege like upper('%DATABASE LINK%') AND USERNAME='scott';

Si la consulta no devuelve datos, utilice sys o el inicio de sesión del usuario del sistema para otorgar permisos

grant create public database link to scott;

Crear DBLINK

Cree un enlace llamado testlink, la base de datos correspondiente es el nombre de usuario scott, la contraseña es 123456

1. En el archivo de configuración de la base de datos tnsnames.ora hay un alias de la base de datos: orcl (nombre de usuario: scott, contraseña: 123456)

         

           El método de creación es el siguiente, usando alias directamente al usar:

create public database link testlink connect to scott identified by '123456' USING 'ORCL'

2. No hay un alias de base de datos correspondiente en el archivo de configuración de la base de datos tnsnames.ora: orcl (nombre de usuario: scott, contraseña: 123456)

           El método de creación es el siguiente, complete la dirección IP de la base de datos correspondiente al usar

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)
                )
              )';

Eliminar el DBLINK correspondiente

drop databse link testlink
drop public databse link testlink

Utilice el DBLINK correspondiente

Para acceder a la tabla de estudiantes de otra base de datos en la base de datos local, la declaración es la siguiente, otro enlace de prueba es el nombre de DBLINK y otras operaciones de DML son las mismas, solo use student @ testlink en lugar del nombre de la tabla correspondiente.

select * from student@testlink

1. Insertar

insert into student@testlink values('id','name');

2. Modificar

update student@testlink set name='name' where id='id';

3. Eliminar

delete from student@testlink where id='id';

Crea sinónimos para el DBLINK correspondiente, fácil de usar y no permite que la gente sepa el nombre de DBLINK

create synonym student for student@testlink;

Puede utilizar directamente student en lugar de student @ tesklink en la ejecución de declaraciones DQL y DML

select * from student;
insert into student values('id','name');
delete from student where id='id';
create synonym student for student;

 

Supongo que te gusta

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