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

在oracle中的差异处事器之间移动数据

发布时间:2021-03-23 10:28:27 所属栏目:站长百科 来源:网络整理
导读:我是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;

(编辑:湖南网)

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

    热点阅读