`

使用过程导出表,导出分区!

 
阅读更多

导出表的过程:

/* Formatted on 2009/07/29 09:35 (Formatter Plus v4.8.8) */
CREATE OR REPLACE PROCEDURE henry."EXPORT_TABLE" (
i_table IN VARCHAR2,
flag OUT NUMBER
)
IS
h1 NUMBER;
-- TYPE t_parts IS RECORD (partition_date varchar2(2000),
-- upperbound varchar2(2000));
--CURSOR cur_last_partition IS
-- SELECT SUBSTR(partition_name,LENGTH(i_table)+2,8) partition_date,
-- high_value upperbound
-- FROM user_tab_partitions
--WHERE partition_name LIKE UPPER(i_table)||'%' AND table_name = UPPER(i_table) and rownum=1
--ORDER BY partition_position ASC;
--c_partition_name CONSTANT varchar2(30) := i_table||'_YYYYMMDD';
--v_last_partition t_parts;
--v_partition_name varchar2(30);
-- v_table varchar2(500);
BEGIN
--EXECUTE IMMEDIATE 'ALTER SESSION SET NLS_DATE_FORMAT="YYYYMMDD"';
-- OPEN cur_last_partition;
-- FETCH cur_last_partition INTO v_last_partition;
--CLOSE cur_last_partition;
-- Here you can make parition in advance
-- v_last_partition.partition_date := TO_DATE(v_last_partition.partition_date);
-- v_partition_name := REPLACE(c_partition_name,'YYYYMMDD',v_last_partition.partition_date);
BEGIN
h1 :=
DBMS_DATAPUMP.OPEN (operation => 'EXPORT',
job_mode => 'TABLE',
job_name => i_table || '_JOB',
VERSION => 'COMPATIBLE'
);
END;

BEGIN
DBMS_DATAPUMP.set_parallel (handle => h1, DEGREE => 1);
END;

BEGIN
DBMS_DATAPUMP.add_file (handle => h1,
filename => i_table || '.LOG',
DIRECTORY => 'EXPDIR',
filetype => 3
);
END;

BEGIN
DBMS_DATAPUMP.set_parameter (handle => h1,
NAME => 'KEEP_MASTER',
VALUE => 0
);
END;

BEGIN
DBMS_DATAPUMP.metadata_filter (handle => h1,
NAME => 'NAME_EXPR',
VALUE => 'IN(''' || i_table
|| ''')'
);
END;

BEGIN
DBMS_DATAPUMP.add_file (handle => h1,
filename => i_table || '.DMP',
DIRECTORY => 'EXPDIR',
filetype => 1
);
END;

BEGIN
DBMS_DATAPUMP.set_parameter (handle => h1,
NAME => 'INCLUDE_METADATA',
VALUE => 1
);
END;

BEGIN
DBMS_DATAPUMP.set_parameter (handle => h1,
NAME => 'DATA_ACCESS_METHOD',
VALUE => 'AUTOMATIC'
);
END;

BEGIN
DBMS_DATAPUMP.set_parameter (handle => h1,
NAME => 'ESTIMATE',
VALUE => 'BLOCKS'
);
END;

BEGIN
DBMS_DATAPUMP.start_job (handle => h1,
skip_current => 0,
abort_step => 0
);
END;

BEGIN
DBMS_DATAPUMP.detach (handle => h1);
END;

write_part_log (i_table,
'NO PARTITION_NAME',
'EXPORT TABLE',
'OK',
'NO SQL'
);
flag := 0;
EXCEPTION
WHEN OTHERS
THEN
write_part_log (i_table,
'NO PARTITION_NAME',
'EXPORT TABLE',
SQLERRM,
'NO SQL'
);
flag := -1;
END export_table;
/

导出分区的过程:

/* Formatted on 2009/07/29 09:36 (Formatter Plus v4.8.8) */
CREATE OR REPLACE PROCEDURE henry.export_partition (i_table IN VARCHAR2)
IS
h1 NUMBER;

TYPE t_parts IS RECORD (
partition_date VARCHAR2 (2000),
upperbound VARCHAR2 (2000)
);

CURSOR cur_last_partition
IS
SELECT SUBSTR (partition_name, LENGTH (i_table) + 2,
8) partition_date, high_value upperbound
FROM user_tab_partitions
WHERE partition_name LIKE UPPER (i_table) || '%'
AND table_name = UPPER (i_table)
AND ROWNUM = 1
ORDER BY partition_position ASC;

c_partition_name CONSTANT VARCHAR2 (30) := i_table || '_YYYYMMDD';
v_last_partition t_parts;
v_partition_name VARCHAR2 (30);
v_table VARCHAR2 (500);
BEGIN
EXECUTE IMMEDIATE 'ALTER SESSION SET NLS_DATE_FORMAT="YYYYMMDD"';

OPEN cur_last_partition;

FETCH cur_last_partition
INTO v_last_partition;

CLOSE cur_last_partition;

-- Here you can make parition in advance
v_last_partition.partition_date :=
TO_DATE (v_last_partition.partition_date);
v_partition_name :=
REPLACE (c_partition_name, 'YYYYMMDD', v_last_partition.partition_date);

BEGIN
h1 :=
DBMS_DATAPUMP.OPEN (operation => 'EXPORT',
job_mode => 'TABLE',
job_name => v_partition_name || '_JOB',
VERSION => 'COMPATIBLE'
);
END;

BEGIN
DBMS_DATAPUMP.set_parallel (handle => h1, DEGREE => 1);
END;

BEGIN
DBMS_DATAPUMP.add_file (handle => h1,
filename => v_partition_name || '.LOG',
DIRECTORY => 'EXPDIR',
filetype => 3
);
END;

BEGIN
DBMS_DATAPUMP.set_parameter (handle => h1,
NAME => 'KEEP_MASTER',
VALUE => 0
);
END;

--begin
-- dbms_datapump.metadata_filter(handle => h1, name => 'SCHEMA_EXPR', value => 'IN(''HENRY'')');
--end;
BEGIN
--dbms_output.put_line('IN('''||i_table||''')');
DBMS_DATAPUMP.metadata_filter (handle => h1,
NAME => 'NAME_EXPR',
VALUE => 'IN(''' || i_table
|| ''')'
);
END;

BEGIN
DBMS_DATAPUMP.data_filter (handle => h1,
NAME => 'PARTITION_LIST',
VALUE => '''||v_partition_name||'''
);
END;

BEGIN
DBMS_DATAPUMP.add_file (handle => h1,
filename => v_partition_name || '.DMP',
DIRECTORY => 'EXPDIR',
filetype => 1
);
END;

BEGIN
DBMS_DATAPUMP.set_parameter (handle => h1,
NAME => 'INCLUDE_METADATA',
VALUE => 1
);
END;

BEGIN
DBMS_DATAPUMP.set_parameter (handle => h1,
NAME => 'DATA_ACCESS_METHOD',
VALUE => 'AUTOMATIC'
);
END;

BEGIN
DBMS_DATAPUMP.set_parameter (handle => h1,
NAME => 'ESTIMATE',
VALUE => 'BLOCKS'
);
END;

BEGIN
DBMS_DATAPUMP.start_job (handle => h1,
skip_current => 0,
abort_step => 0
);
END;

BEGIN
DBMS_DATAPUMP.detach (handle => h1);
END;
END export_partition;
/

分享到:
评论

相关推荐

    导入导出 Oracle 分区表数据

    导入导出 Oracle 分区表数据

    oracle11g expdp impdp 分区表重映射导出导入数据迁移方案

    oracle expdp impdp 分区表重映射导出导入 数据迁移方案,以SI01用户为例子,将用户分区表导出后,将分区表重映射到新的表空间,完成数据迁移和检查。照方案例子按步去做,一定能成功。

    高通工具箱-可以备份分区 导出分区 檫除分区 备份系统

    高通工具箱-可以备份分区 导出分区 檫除分区 备份系统 具体查看博文; https://blog.csdn.net/u011283906/article/details/132417510?spm=1001.2014.3001.5502 其中的01高通工具箱了解其界面和功能选项 只要有高通的...

    分区索引导出的脚本

    oracle中分区索引导出的脚本

    Hue数据导入导出

    Hue数据导入导出 一套流程的开发使用 旨在帮助大家v e

    使用PLSQL导入导出oracle数据

    使用PLSQL导入导出oracle数据的几种方式说明

    创建导入导出Oracle分区表数据[参照].pdf

    创建导入导出Oracle分区表数据[参照].pdf

    Oracle表分区 建表空间 创建用户

    Oracle的相关知识,建表空间,创建用户,给用户授权, 删除用户,给表多列加锁,导出和导入,范围分区,散列分区,列表分区,复合分区、、、

    unix中oracle分区表导出

    NULL 博文链接:https://wjeye.iteye.com/blog/600274

    ORACLE 常用手册导入导出

    TABLES 按表方式导出时,指定需导出的表和分区的名称 PARFILE 指定传递给导出实用程序的参数文件名 TABLESPACES 按表空间方式导出时,指定要导出的表空间名 --导出 --全库导出 exp system/accp@accp --在后面的参数...

    oracler的导入与导出

    或 TABLES=(T1: P1,T1: P2),如果 T1 是分区表 USERID 必须是命令行中的第一个参数。 关键字 说明(默认) --------------------------------------------------- USERID 用户名/口令 FULL 导出整个文件 (N...

    iTunes 授权导入导出工具

    支持单分区修改。 支持系统在其他盘符。 支持备份当前系统卷序列号。 将所有控件集成,无需注册组件。 修复若干个BUG。 此工具是iTunes导入导出工具的升级版,所以兼容授权文件和配置文件。直接将软件放在目录下打开...

    详解Mysql导出数据的几种方式

    MySQL导出数据的目的有很多种,如数据库备份、表结构导出、表数据导出、分析数据采取等。 Part1 select into outfile 先说最短小精悍的select into outfile, 这是小型数据库分析数据最常用的采集数据方式,具体语法...

    Ext2Fsd软件win系统查看linux分区

    在windows下查看linux分区的软件,指定盘符,查看分区内容等

    用于导出、加载和解析以太坊区块链数据的 Airflow DAG_python_代码_下载

    创建 Google Cloud Storage 存储分区 创建一个新的 Google Storage 存储桶来存储导出的文件https://console.cloud.google.com/storage/browser 创建 Google Cloud Composer 环境 创建一个新的 Cloud Composer 环境:...

    oracle 常用语句 oracle备份 oracle冷备份 oracle启停 oracle导出 oracle导入

    --按表分区方式导出 ..................(见附件) --按表空间方式导出 ..................(见附件) --按参数文件方式导出,将要导出的命令写在文本文件中 ..................(见附件) --导入ORACLE参数 参数 说明 ...

    数据库优化--局部数据迁移

    压缩包主要包括如下文件: 1,迁移表的导出,生成备份文件;重命名迁移表。...9,创建原来存储过程使用的临时表;将重命名的表进行恢复;将备份的数据重新导入数据库。 当然,还包括有相关的恢复脚本。

    Ω背景和涡旋/瞬时对应中的2d分区函数

    使用本文中导出的微分方程,我们显示了二维涡旋弦世界表理论的分区函数与二维N = 2 $$ \ mathcal {的希格斯分支的根部的Nekrasov分区函数之间的对应关系。 N} = 2 $$理论,具有两个Ω形变参数(ϵ 1,ϵ 2)。

    oracle数据库修复

    能够在一个平台上导出其他平台的数据,比如在Windows 32位系统上,使用AIX系统上的数据文件导出数据。 支持的数据类型包括:NUMBER, CHAR, VARCHAR2, NCHAR,NVARHCAR2, LONG, DATE, RAW, LONG RAW, BLOB, CLOB, ...

    Oracle数据库恢复工具Oracle Database Unloader(ODU)3.09

    只能在有SYSTEM表空间时才能导出IOT表 支持多种平台的数据库,包括AIX、LINUX、HPUX、SOLARIS、WINDOWS等。能够在一个平台上导出其他平台的数据,比如在Windows 32位系统上,使用AIX系统上的数据文件导出数据。 ...

Global site tag (gtag.js) - Google Analytics