我是Oracle的新手,我正在努力将特定数据从一台服务器上的数据库移动到另一台服务器上的数据库.
这两个DB具有相同的模式,但我想拉出其键引用的特定列,并将数据移动到其他服务器中.我想弄清楚对此最好的攻击方案是什么.
一种允许命令行的方法,我可以输入我想要移动的数据的键.是否有可能用PLsql脚本完成?
谢谢.
解决方法
假设您可以在两个数据库之间创建网络连接,最简单的选择是在它们之间创建数据库链接,即
CREATE DATABASE LINK to_b CONNECT TO username_on_b IDENTIFIED BY password USING 'tns_alias_for_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;