加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

在oracle中的不同服务器之间移动数据

发布时间:2021-03-16 19:46:55 所属栏目:站长百科 来源:网络整理
导读:我是Oracle的新手,我正在努力将特定数据从一台服务器上的数据库移动到另一台服务器上的数据库. 这两个DB具有相同的模式,但我想拉出其键引用的特定列,并将数据移动到其他服务器中.我想弄清楚对此最好的攻击方案是什么. 一种允许命令行的方法,我可以输入我想要

我是Oracle的新手,我正在努力将特定数据从一台服务器上的数据库移动到另一台服务器上的数据库.

这两个DB具有相同的模式,但我想拉出其键引用的特定列,并将数据移动到其他服务器中.我想弄清楚对此最好的攻击方案是什么.

一种允许命令行的方法,我可以输入我想要移动的数据的键.是否有可能用PLSQL脚本完成?

谢谢.

解决方法

假设您可以在两个数据库之间创建网络连接,最简单的选择是在它们之间创建数据库链接,即

CREATE DATABASE LINK to_b
  CONNECT TO username_on_b
  IDENTIFIED BY password
  USING 'tns_alias_for_b'

然后,您可以使用该数据库链接查询数据库B中的数据,即

INSERT INTO table_name( list_of_columns )
  SELECT list_of_columns
    FROM table_name@to_b
   WHERE primary_key_value = <<some value>>;

这可以是直接的SQL语句,PL / SQL过程的一部分,也可以是SQL * Plus脚本的一部分.一个PL / SQL过程

CREATE OR REPLACE PROCEDURE move_row_from_b( 
  p_key_value IN table_name.primary_key%type 
)
AS
BEGIN
  INSERT INTO table_name( list_of_columns )
    SELECT list_of_columns
      FROM table_name@to_b
     WHERE primary_key_value = p_key_value;
END move_row_from_b;

可以通过SQL * Plus中的EXEC或匿名PL / SQL块调用

SQL> exec move_row_from_b( 23 );

BEGIN
  move_row_from_b( 23 );
END;

或者您可以编写SQL * Plus脚本

variable key_value number;
accept key_value prompt 'Enter key: '
INSERT INTO table_name( list_of_columns )
  SELECT list_of_columns
    FROM table_name@to_b
   WHERE primary_key_value = :key_value;

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读