oracle存储过程创建表分区实例
v_PartPreDate := TO_CHAR(SYSDATE + p_DateFrom + i, 'YYYYMMDD');
SELECT COUNT(*)
MIN20 FLOAT,
功能描述:创建模拟量历史数据存储表
end if;
WHERE NAME = 'p_PartNum';
dbms_output.put_line(v_PartPreFlag || ' truncated');
COMMIT;
v_PartPreFlag || '_' || v_PartPreDate ||
创建时注意必须添加authid current_user,如果创建的表已存在,存储过程继续执行,但如不不加此关键语句,存储过程将出现异常,
end;
DBMS_SQL.PARSE(v_SqlCursor, v_SqlExec, DBMS_SQL.NATIVE);
END IF;
v_Rows := DBMS_SQL.EXECUTE(v_SqlCursor);
复制代码 代码如下:
v_SqlCursor := DBMS_SQL.OPEN_CURSOR;begin
'BIP_MMS_PARTITION_PROC_DEL',
MINV FLOAT,
AGV25 FLOAT,
这个语句相当于赋权限。
end;
MIN45 FLOAT,
AGV55 FLOAT,
v_Rows := DBMS_SQL.EXECUTE(v_SqlCursor);
END;
FROM BIP_OTHERS_PROPERTIES_TAB
FROM user_tab_partitions
DBMS_SQL.PARSE(v_SqlCursor, v_SqlExec, DBMS_SQL.NATIVE);
v_PartPreDate := TO_CHAR(SYSDATE + p_DateFrom + i, 'YYYYMMDD');
'BEGIN');
--记录存储过程添加分区
INSERT INTO BIP_LOG_STAT_EXEC_TAB
v_PartPreDate := TO_CHAR(SYSDATE + p_DateFrom + i, 'YYYYMMDD');
DBMS_SQL.CLOSE_CURSOR(v_SqlCursor);
FROM BIP_OTHERS_PROPERTIES_TAB
AND SUBSTR(partition_name, 17, 8) = v_PartPreDate;
-- 读取配置参数
dbms_output.put_line(v_SqlExec);
v_TableSpace := 'BIP_MMS_TS_TEST';
INTO v_Num
IF v_Num < 1 THEN
dbms_output.put_line(v_SqlExec);
p_PartNum NUMBER;
MIN05 FLOAT,
CREATE OR REPLACE PROCEDURE BIP_MMS_PARTITION_PROC AS
dbms_output.put_line(v_PartPreFlag || ' dropped');
MIN15 FLOAT,
TO_CHAR(SYSDATE - p_Range, 'yyyymmdd');
'END');
DBMS_SQL.PARSE(v_SqlCursor, v_SqlExec, DBMS_SQL.NATIVE);
v_PartPreFlag;
p_DateFrom NUMBER;
COMMIT;
v_PartPreFlag := 'MMS_MT_CONTENT';
INSERT INTO BIP_LOG_STAT_EXEC_TAB
v_PartPreFlag;
例1
MIN10 FLOAT,
'BEGIN');
BEGIN
v_RangeDate := TO_CHAR(SYSDATE + p_DateFrom + i, 'YYYYMMDD');
END;
v_RangeValue := v_RangeDate || '240000';
v_SqlExec := 'ALTER TABLE ' || v_Mms_User_Tab || ' TRUNCATE PARTITION ' ||
v_Num NUMBER(30) := 0;
v_SqlCursor := DBMS_SQL.OPEN_CURSOR;
AND SUBSTR(partition_name, 17, 8) = v_PartPreDate;
AND SUBSTR(partition_name, 16, 8) = v_PartPreDate;
v_SqlCursor := DBMS_SQL.OPEN_CURSOR;
MAX35 FLOAT,
v_SqlExec VARCHAR2(2000); --执行语句
v_Mms_User_Tab := 'BIP_MMS_MT_USER_LOG_TAB_TEST';
dbms_output.put_line(v_SqlExec);
v_Mms_Content_Tab VARCHAR2(50);
v_SqlCursor := DBMS_SQL.OPEN_CURSOR;
BEGIN
AGV30 FLOAT,
v_PartPreFlag || '_' || v_PartPreDate ||
MIN40 FLOAT,
execute immediate 'create table '||v_tablename ||'
maxextents unlimited
1.0.0 2012-9-20 wylaok 1.创建此存储过程
DBMS_SQL.CLOSE_CURSOR(v_SqlCursor);
MAXTIME DATE,
DBMS_SQL.CLOSE_CURSOR(v_SqlCursor);
v_PartPreFlag || '_' || v_PartPreDate ||
END;
BEGIN
'BIP_MMS_PARTITION_PROC_ERROR',
pctfree 10
v_PartPreFlag := 'MMS_MT_TASK_LOG' || '_' ||
v_SqlCursor := DBMS_SQL.OPEN_CURSOR;
v_PartPreDate VARCHAR2(20); --分区日期
dbms_output.put_line(v_PartPreDate);
dbms_output.put_line(v_PartPreFlag || ' truncated');
(
v_SqlExec := 'ALTER TABLE ' || v_Mms_User_Tab || ' DROP PARTITION ' ||
DBMS_SQL.CLOSE_CURSOR(v_SqlCursor);
WHERE table_name = v_Mms_Task_Tab
AGV40 FLOAT,
create or replace
INTO p_PartNum
pctincrease 0
(TO_CHAR(SYSDATE, 'yyyymmddhh24miss'),
v_PartPreFlag;
v_RangeValue NUMBER;
END;
TO_CHAR(SYSDATE - p_Range, 'yyyymmdd');
例2
v_flag:=0;
v_Mms_Task_Tab VARCHAR2(50); --表名
COMMIT;
DBMS_SQL.PARSE(v_SqlCursor, v_SqlExec, DBMS_SQL.NATIVE);
VALUES
dbms_output.put_line(v_SqlExec);
DBMS_SQL.CLOSE_CURSOR(v_SqlCursor);
v_TableSpace := 'BIP_MMS_TS_TEST';
v_SqlCursor := DBMS_SQL.OPEN_CURSOR;
复制代码 代码如下:
MAX25 FLOAT,EXCEPTION
DBMS_SQL.PARSE(v_SqlCursor, v_SqlExec, DBMS_SQL.NATIVE);
MIN50 FLOAT,
调用此存储过程:
storage
COMMIT;
v_PartPreFlag;
begin
DBMS_SQL.CLOSE_CURSOR(v_SqlCursor);
v_PartPreFlag;
AGV35 FLOAT,
/*********************************
i_id 测点编号
MIN55 FLOAT,
dbms_output.put_line(v_PartPreFlag);
p_Range := 180;
v_Mms_User_Tab VARCHAR2(50);
v_Rows := DBMS_SQL.EXECUTE(v_SqlCursor);
dbms_output.put_line(v_PartPreFlag || ' truncated');
DBMS_SQL.PARSE(v_SqlCursor, v_SqlExec, DBMS_SQL.NATIVE);
v_RangeValue := v_RangeDate || '240000';
v_flag number(10,0);
'BIP_MMS_PARTITION_PROC_DEL',
MAX00 FLOAT,
''') TABLESPACE ' || v_TableSpace;
WHEN OTHERS THEN
v_Rows := DBMS_SQL.EXECUTE(v_SqlCursor);
BEGIN
COMMIT;
v_Num := 0;
(TO_CHAR(SYSDATE, 'yyyymmddhh24miss'), 'BIP_MMS_PARTITION_PROC_ADD', 'END');
END IF;
MAX50 FLOAT,
' TRUNCATE PARTITION ' || v_PartPreFlag;
MAXV FLOAT,
AGV20 FLOAT,
MINTIME DATE
FROM BIP_OTHERS_PROPERTIES_TAB
tablespace WYG
FROM user_tab_partitions
SELECT COUNT(*)
p_PartNum := 1;
v_RangeDate := TO_CHAR(SYSDATE + p_DateFrom + i, 'YYYYMMDD');
INTO p_DateFrom
''') TABLESPACE ' || v_TableSpace;
SELECT TO_NUMBER(VALUE)
v_TableSpace := 'BIP_MMS_TS_TEST';
MAX55 FLOAT,
begin
名称:sp_create_mnl
AGV00 FLOAT,
AVG05 FLOAT,
BEGIN
p_Range NUMBER;
COMMIT;
v_PartPreFlag := 'MMS_MT_TASK_LOG';
)';
DBMS_SQL.CLOSE_CURSOR(v_SqlCursor);
AGV15 FLOAT,
1.0.1 2012-9-21 wylaok 2.修改表名称及变量名称,增加必要注释
BEGIN
BEGIN
ROLLBACK;
DBMS_SQL.CLOSE_CURSOR(v_SqlCursor);
COMMIT;
END;
INSERT INTO BIP_LOG_STAT_EXEC_TAB
v_Mms_Content_Tab := 'BIP_MMS_MT_CONTENT_TAB_TEST';
dbms_output.put_line(v_PartPreFlag || ' dropped');
MAX10 FLOAT,
v_PartPreFlag := 'MMS_MT_CONTENT' || '_' ||
VALUES
END IF;
FOR i IN 1 .. p_PartNum LOOP
入参出参描述:
VALUES
END;
MAX05 FLOAT,
dbms_output.put_line(v_PartPreFlag);
)
VALUES
v_Mms_Task_Tab := 'BIP_MMS_MT_TASK_LOG_TAB_TEST';
MIN35 FLOAT,
v_Rows := DBMS_SQL.EXECUTE(v_SqlCursor);
dbms_output.put_line(TO_CHAR(SQLCODE));
' VALUES LESS THAN(''' || v_RangeValue ||
FROM user_tab_partitions
next 512K
end bip_mms_partition_proc;
dbms_output.put_line(TO_CHAR(vErrInfo));
**********************************/
minextents 1
WHERE NAME = 'p_DateFrom';
DBMS_SQL.PARSE(v_SqlCursor, v_SqlExec, DBMS_SQL.NATIVE);
MIN30 FLOAT,
MAX15 FLOAT,
v_SqlCursor := DBMS_SQL.OPEN_CURSOR;
( DATETIME DATE,
v_Rows := DBMS_SQL.EXECUTE(v_SqlCursor);
MAX30 FLOAT,
INSERT INTO BIP_LOG_STAT_EXEC_TAB
DBMS_SQL.PARSE(v_SqlCursor, v_SqlExec, DBMS_SQL.NATIVE);
v_SqlExec := 'ALTER TABLE ' || v_Mms_Content_Tab ||
MAX20 FLOAT,
v_SqlExec := 'ALTER TABLE ' || v_Mms_User_Tab || ' ADD PARTITION ' ||
INSERT INTO BIP_LOG_STAT_EXEC_TAB
MIN25 FLOAT,
EXCEPTION
v_SqlExec := 'ALTER TABLE ' || v_Mms_Task_Tab || ' DROP PARTITION ' ||
v_sqlfalg varchar(200);
复制代码 代码如下:
v_RangeDate NUMBER;end;
dbms_output.put_line(v_PartPreFlag || ' dropped');
execute immediate v_sqlfalg into v_flag;
--DELETE PARTITION
AVGV FLOAT,
v_PartPreFlag := 'MMS_MT_USER_LOG' || '_' ||
dbms_output.put_line(v_SqlExec);
WHERE table_name = v_Mms_User_Tab
'BIP_MMS_PARTITION_PROC_ADD',
DBMS_SQL.CLOSE_CURSOR(v_SqlCursor);
v_Rows := DBMS_SQL.EXECUTE(v_SqlCursor);
MIN00 FLOAT,
v_tablename varchar2(30);--表名
v_PartPreFlag VARCHAR2(50); --分区名标识
v_SqlCursor NUMBER; --游标
AGV50 FLOAT,
v_SqlCursor := DBMS_SQL.OPEN_CURSOR;
WHERE NAME = 'p_Range';
INTO v_Num
TO_CHAR(SYSDATE - p_Range, 'yyyymmdd');
用存储过程创建数据表:
MAX40 FLOAT,
dbms_output.put_line(v_sqlfalg);
创建语句如下:
''') TABLESPACE ' || v_TableSpace;
SELECT COUNT(*)
--BIP_MMS_MT_CONTENT_TAB 添加分区
createmnl('mnl_14');
vErrInfo VARCHAR2(200);
VALUES
END LOOP;
dbms_output.put_line(v_SqlExec);
SELECT TO_NUMBER(VALUE)
vErrInfo);
SELECT TO_NUMBER(VALUE)
maxtrans 255
v_PartPreFlag := 'MMS_MT_USER_LOG';
v_Num := 0;
v_RangeDate := TO_CHAR(SYSDATE + p_DateFrom + i, 'YYYYMMDD');
if v_flag=0 then --如果没有这个表 则去创建
v_SqlExec := 'ALTER TABLE ' || v_Mms_Content_Tab || ' ADD PARTITION ' ||
v_Num := 0;
--ADD PARTITION
v_SqlExec := 'ALTER TABLE ' || v_Mms_Content_Tab || ' DROP PARTITION ' ||
WHERE table_name = v_Mms_Content_Tab
v_SqlExec := 'ALTER TABLE ' || v_Mms_Task_Tab || ' TRUNCATE PARTITION ' ||
vErrInfo := SUBSTR(SQLERRM, 1, 200);
AGV45 FLOAT,
p_DateFrom := 0;
v_TableSpace VARCHAR2(20); --表空间
INTO p_Range
-- execute immediate sqlstr;
initrans 1
procedure sp_create_mnl(i_id varchar2) authid current_user as
IF v_Num < 1 THEN
(TO_CHAR(SYSDATE, 'yyyymmddhh24miss'),
v_tablename:=CONCAT('MNL', UPPER(i_id));
v_sqlfalg:='select count(*) from user_TABLES where table_name='''||v_tablename||'''';
dbms_output.put_line(v_SqlExec);
v_RangeValue := v_RangeDate || '240000';
initial 512K
IF v_Num < 1 THEN
版本号 编辑时间 编辑人 修改描述
(TO_CHAR(SYSDATE, 'yyyymmddhh24miss'),
v_SqlExec := 'ALTER TABLE ' || v_Mms_Task_Tab || ' ADD PARTITION ' ||
' VALUES LESS THAN(''' || v_RangeValue ||
AGV10 FLOAT,
dbms_output.put_line(v_PartPreFlag);
--BIP_MMS_MT_TASK_LOG_TAB_TEST 添加分区
dbms_output.put_line(v_RangeValue);
v_Rows := DBMS_SQL.EXECUTE(v_SqlCursor);
INTO v_Num
--BIP_MMS_MT_USER_LOG_TAB_TEST 添加分区
修订记录:
v_Rows NUMBER(30) := 0;
WHEN OTHERS THEN
(TO_CHAR(SYSDATE, 'yyyymmddhh24miss'),
DBMS_SQL.PARSE(v_SqlCursor, v_SqlExec, DBMS_SQL.NATIVE);
MAX45 FLOAT,
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://www.juheyunku.com/sql/oracle/1756.shtml
相关文章
热门TAG
命令 权重 外链 企业网站 白帽 php 织梦教程 dedecms修改内容 javascript 织梦 功能 标签 调用 详解 服务器 网站流量 实例解析 Dedecms 织梦cms HTML tags标签 python jquery教程 jquery windows SEO优化 蜘蛛 搜索引擎 网站收录 JSP最新文章
-
Window下Oracle Database 11g 发行
时间:2020-12-29
-
Oracle如何实现like多个值的
时间:2020-12-29
-
maven添加oracle依赖失败问题
时间:2020-12-29
-
OracleRAC基本概念及入门
时间:2020-12-29
-
Azure File Storage 基本用法
时间:2020-12-26
-
Oracle 权限(grant revoke)
时间:2020-12-26
-
Azure Queue Storage 基本用法
时间:2020-12-26
-
如何对比迁移前后的Orac
时间:2020-12-26
热门文章
-
Azure Queue Storage 基本用法 Azure Storage 之
时间:2020-12-26
-
Oracle存储过程编程详解
时间:2020-12-07
-
win10下oracle 11g安装图文教程
时间:2020-12-25
-
oracle 数据库学习 基本结构介绍
时间:2020-12-13
-
Azure File Storage 基本用法 Azure Storage 之 F
时间:2020-12-26
-
windows使用sqlpus连接oracle 数据库的教程图
时间:2020-12-25
-
Window下Oracle Database 11g 发行版2安装教程
时间:2020-12-29
-
Oracle解锁的方式介绍
时间:2020-12-14
-
linux下oracle设置开机自启动实现方法
时间:2020-12-13
-
Oracle学习记录之使用自定义函数和触发器
时间:2020-12-07
