使用 Oracle 转移数据库表的技巧(oracle转移表数据)

本文介绍使用Oracle 对数据库表进行转移的技巧和方法。将数据库表转移有多种方法,本文涉及的具体包括使用SQL*Plus INSERT语句,使用Oracle的CREATE TABLE语句,以及使用Oracle的Data Pump功能转移数据库表等。

## 一、使用SQL*Plus INSERT语句

SQL*Plus INSERT语句可以将现有表中的数据转移到另一个表中,在使用SQL*Plus INSERT语句时可以采用以下技巧:

(1)INSERT语句允许指定插入范围,即只将特定查询条件匹配的行加入转移表。 例:

INSERT INTO TABLE new (ID, NAME, AGE)

SELECT ID, NAME, AGE

FROM old

WHERE SEX = ‘female’;

(2)INSERT语句可以利用Oracle的系统变量ROWNUM,实现指定行数转移。 例:

INSERT INTO TABLE new (ID, NAME, AGE)

SELECT * FROM (

SELECT ID, NAME, AGE

FROM old

ORDER BY AGE DESC

)

WHERE ROWNUM

(3)可以使用【BULK COLLECT】语句,将一定数量的行加入转移表,减少表访问次数。 例:

DECLARE

TYPE T_EMPLOYEE IS TABLE OF EMPLOYEE%ROWTYPE

INDEX BY BINARY_INTEGER;

V_IDS T_EMPLOYEE;

BEGIN

SELECT * BULK COLLECT INTO V_IDS

FROM EMPLOYEE;

FORALL INDX IN V_IDS.FIRST..V_IDS.LAST

INSERT INTO NEW_EMPLOYEE VALUES V_IDS(INDX);

END;

## 二、使用Oracle的CREATE TABLE语句

另外一种将数据库表转移的方法是使用Oracle的CREATE TABLE语句,即在新表中再创建一个相同的表结构,再将旧表的数据插入新表中。利用该方法还可以实现更复杂的转移操作,例如:重命名旧表的字段或对数据进行处理等,示例如下:

CREATE TABLE new_employees AS

(

SELECT id, name, age, gender+’_new’ AS gender_name

FROM employees

);

## 三、使用Oracle的Data Pump功能

另外一种简单可靠的转移数据库表的方法是使用Oracle数据泵工具——Data Pump。Data Pump是一个用于转移数据库表的灵活有效的工具,能够将单个表或多个表中的数据转移到不同的数据库实例中,具体步骤如下:

(1)将旧表导出为datapump文件;

(2)在新表中创建新表;

(3)从datapump文件中加载数据;

(4)提交事务。

例:

expdp scott/tiger@orcl directory=DUMPDIR DUMPFILE=emp.dpd UPLOAD SCHEMAS=scott

impdp scott/tiger@orcl directory=DUMPDIR DUMPFILE=Emp.dpd TABLES=EMP TABLE_EXISTS_ACTION=truncate

由上述内容可以看出,使用Oracle可以有多种方法将数据库表转移,而我们介绍的SQL*Plus INSERT语句, Oracle的CREATE TABLE语句,以及Data Pump功能等有助于帮助我们正确有效地完成这一任务。


数据运维技术 » 使用 Oracle 转移数据库表的技巧(oracle转移表数据)