使用存储过程创建数据表:
当您创建,您必须添加验证ID current_user。如果存储表已经存在,存储过程将继续执行,但如果不添加此键语句,存储过程将异常。
此语句相当于权限。
1例
创建语句如下所示:
复制代码代码如下所示:
创建或替换
程序sp_create_mnl(i_id VARCHAR2)current_user作为验证ID
/ *********************************
名称:sp_create_mnl
函数描述:创建模拟历史数据存储表

修订记录:
版本号编辑时间编辑器的修改说明
1 wylaok 1.0.0 2012-9-20.。创建此存储过程
1.0.1 2012-9-21 wylaok 2。修改表的名称和变量的名称,以添加必要的注释。

参考说明:
i_id点数
********************************** /
v_tablename VARCHAR2(30);表名称
v_flag数(10,0);
v_sqlfalg varchar(200);
开始
v_flag:= 0;
v_tablename:= concat('mnl上(i_id));
v_sqlfalg:= 'select计数(*)从user_tables哪里table_name = ' | | v_tablename | | ';
dbms_output.put_line(v_sqlfalg);
立即执行v_sqlfalg为v_flag;
如果v_flag = 0,如果没有这个表被创建
开始
执行immediate'create表| | v_tablename | |
(datetime日期,
min00浮,
agv00浮,
max00浮,
min05浮,
avg05浮,
max05浮,
团注法浮,
agv10浮,
max10浮,
min15浮,
agv15浮,
max15浮,
min20浮,
agv20浮,
max20浮,
min25浮,
agv25浮,
max25浮,
分钟30浮,
agv30浮,
max30浮,
min35浮,
agv35浮,
max35浮,
min40浮,
agv40浮,
max40浮,
min45浮,
agv45浮,
max45浮,
min50浮,
agv50浮,
max50浮,
min55浮,
agv55浮,
max55浮,
minv浮,
MaxV浮,
avgv浮,
最大时限的日期,
圣航日期

表空间的构建
Pctfree 10
initrans 1
Maxtrans 255
保管部

初始512k
下一512k
minextents 1
maxextents无限
pctincrease 0
');
-立即执行sqlstr;
结束;
最后如果;
结束;

调用此存储过程:
复制代码代码如下所示:
开始
Createmnl('mnl_14);
结束;

2例
复制代码代码如下所示:
创建或替换程序bip_mms_partition_proc作为

v_mms_task_tab VARCHAR2(50);表名称
v_mms_content_tab VARCHAR2(50);
v_mms_user_tab VARCHAR2(50);
v_tablespace VARCHAR2(20);表空间
v_partpreflag VARCHAR2(50);——分区名称识别
v_sqlcursor数;——光标
v_sqlexec VARCHAR2(2000);——执行语句
v_partpredate VARCHAR2(20);分区的日期
v_rangevalue数;
v_rangedate数;
v_rows数= 0(30);
v_num数= 0(30);
verrinfo VARCHAR2(200);
p_datefrom数;
p_partnum数;
p_range数;
开始

v_mms_task_tab:= 'bip_mms_mt_task_log_tab_test;
v_mms_content_tab:= 'bip_mms_mt_content_tab_test;
v_mms_user_tab:= 'bip_mms_mt_user_log_tab_test;
-读取配置参数
开始
选择to_number(价值)
为p_datefrom
从bip_others_properties_tab
name = 'p_datefrom;
选择to_number(价值)
为p_partnum
从bip_others_properties_tab
name = 'p_partnum;
选择to_number(价值)
为p_range
从bip_others_properties_tab
name = 'p_range;
例外
当别人然后
开始
p_datefrom:= 0;
p_partnum:= 1;
p_range:= 180;
结束;
结束;
-记录存储过程添加分区
插入bip_log_stat_exec_tab
价值观
(to_char(SYSDATE,'yyyymmddhh24miss),
bip_mms_partition_proc_add,
开始;
承诺;
-添加分区
我在1…p_partnum环
——bip_mms_mt_content_tab添加分区
v_partpredate:= to_char(SYSDATE + p_datefrom +我,'yyyymmdd);
dbms_output.put_line(v_partpredate);
v_num:= 0;
v_tablespace:= 'bip_mms_ts_test;
v_partpreflag:= 'mms_mt_content;
选择计数(*)
为v_num
从user_tab_partitions
在table_name = v_mms_content_tab
和substr(partition_name,16, 8)= v_partpredate;
如果v_num<1
v_rangedate:= to_char(SYSDATE + p_datefrom +我,'yyyymmdd);
v_rangevalue:= v_rangedate '240000| |;
dbms_output.put_line(v_rangevalue);
v_sqlexec:= 'alter表v_mms_content_tab添加分区的| | | | | |
v_partpreflag | | '_| | v_partpredate | |
值小于(v_rangevalue | | | |
表v_tablespace | |);
dbms_output.put_line(v_sqlexec);
v_sqlcursor:= dbms_sql.open_cursor;
dbms_sql.parse(v_sqlcursor,v_sqlexec,dbms_sql。母语);
v_rows:= dbms_sql.execute(v_sqlcursor);
dbms_sql.close_cursor(v_sqlcursor);
最后如果;
——bip_mms_mt_task_log_tab_test添加分区
v_partpredate:= to_char(SYSDATE + p_datefrom +我,'yyyymmdd);
v_num:= 0;
v_tablespace:= 'bip_mms_ts_test;
v_partpreflag:= 'mms_mt_task_log;
选择计数(*)
为v_num
从user_tab_partitions
在table_name = v_mms_task_tab
和substr(partition_name,17, 8)= v_partpredate;
如果v_num<1
v_rangedate:= to_char(SYSDATE + p_datefrom +我,'yyyymmdd);
v_rangevalue:= v_rangedate '240000| |;
v_sqlexec:= 'alter表v_mms_task_tab添加分区的| | | | | |
v_partpreflag | | '_| | v_partpredate | |
值小于(v_rangevalue | | | |
表v_tablespace | |);
dbms_output.put_line(v_sqlexec);
v_sqlcursor:= dbms_sql.open_cursor;
dbms_sql.parse(v_sqlcursor,v_sqlexec,dbms_sql。母语);
v_rows:= dbms_sql.execute(v_sqlcursor);
dbms_sql.close_cursor(v_sqlcursor);
最后如果;
——bip_mms_mt_user_log_tab_test添加分区
v_partpredate:= to_char(SYSDATE + p_datefrom +我,'yyyymmdd);
v_num:= 0;
v_tablespace:= 'bip_mms_ts_test;
v_partpreflag:= 'mms_mt_user_log;
选择计数(*)
为v_num
从user_tab_partitions
在table_name = v_mms_user_tab
和substr(partition_name,17, 8)= v_partpredate;
如果v_num<1
v_rangedate:= to_char(SYSDATE + p_datefrom +我,'yyyymmdd);
v_rangevalue:= v_rangedate '240000| |;
v_sqlexec:= 'alter表v_mms_user_tab添加分区的| | | | | |
v_partpreflag | | '_| | v_partpredate | |
值小于(v_rangevalue | | | |
表v_tablespace | |);
dbms_output.put_line(v_sqlexec);
v_sqlcursor:= dbms_sql.open_cursor;
dbms_sql.parse(v_sqlcursor,v_sqlexec,dbms_sql。母语);
v_rows:= dbms_sql.execute(v_sqlcursor);
dbms_sql.close_cursor(v_sqlcursor);
最后如果;
结束循环;
承诺;

插入bip_log_stat_exec_tab
价值观
(to_char(SYSDATE,'yyyymmddhh24miss),'bip_mms_partition_proc_add,);
承诺;

——删除分区
插入bip_log_stat_exec_tab
价值观
(to_char(SYSDATE,'yyyymmddhh24miss),
bip_mms_partition_proc_del,
开始;
承诺;

开始
v_partpreflag:= 'mms_mt_content| | '_| |
to_char(SYSDATE - p_range,'yyyymmdd);
dbms_output.put_line(v_partpreflag);
v_sqlexec:= 'alter表v_mms_content_tab | || |
删除分区| | v_partpreflag;
dbms_output.put_line(v_sqlexec);
v_sqlcursor:= dbms_sql.open_cursor;
dbms_sql.parse(v_sqlcursor,v_sqlexec,dbms_sql。母语);
v_rows:= dbms_sql.execute(v_sqlcursor);
dbms_sql.close_cursor(v_sqlcursor);
dbms_output.put_line(v_partpreflag截断的| |);

v_sqlexec:= 'alter表v_mms_content_tab删除分区| | | | | |
v_partpreflag;
dbms_output.put_line(v_sqlexec);
v_sqlcursor:= dbms_sql.open_cursor;
dbms_sql.parse(v_sqlcursor,v_sqlexec,dbms_sql。母语);
v_rows:= dbms_sql.execute(v_sqlcursor);
dbms_sql.close_cursor(v_sqlcursor);
dbms_output.put_line(v_partpreflag掉落| |);
结束;

开始
v_partpreflag:= 'mms_mt_task_log| | '_| |
to_char(SYSDATE - p_range,'yyyymmdd);
dbms_output.put_line(v_partpreflag);
v_sqlexec:= 'alter表v_mms_task_tab删除分区| | | | | |
v_partpreflag;
dbms_output.put_line(v_sqlexec);
v_sqlcursor:= dbms_sql.open_cursor;
dbms_sql.parse(v_sqlcursor,v_sqlexec,dbms_sql。母语);
v_rows:= dbms_sql.execute(v_sqlcursor);
dbms_sql.close_cursor(v_sqlcursor);
dbms_output.put_line(v_partpreflag截断的| |);

v_sqlexec:= 'alter表v_mms_task_tab删除分区| | | | | |
v_partpreflag;
v_sqlcursor:= dbms_sql.open_cursor;
dbms_sql.parse(v_sqlcursor,v_sqlexec,dbms_sql。母语);
v_rows:= dbms_sql.execute(v_sqlcursor);
dbms_sql.close_cursor(v_sqlcursor);
dbms_output.put_line(v_partpreflag掉落| |);
结束;

开始
v_partpreflag:= 'mms_mt_user_log| | '_| |
to_char(SYSDATE - p_range,'yyyymmdd);
dbms_output.put_line(v_partpreflag);
v_sqlexec:= 'alter表v_mms_user_tab删除分区| | | | | |
v_partpreflag;
dbms_output.put_line(v_sqlexec);
v_sqlcursor:= dbms_sql.open_cursor;
dbms_sql.parse(v_sqlcursor,v_sqlexec,dbms_sql。母语);
v_rows:= dbms_sql.execute(v_sqlcursor);
dbms_sql.close_cursor(v_sqlcursor);
dbms_output.put_line(v_partpreflag截断的| |);

v_sqlexec:= 'alter表v_mms_user_tab删除分区| | | | | |
v_partpreflag;
v_sqlcursor:= dbms_sql.open_cursor;
dbms_sql.parse(v_sqlcursor,v_sqlexec,dbms_sql。母语);
v_rows:= dbms_sql.execute(v_sqlcursor);
dbms_sql.close_cursor(v_sqlcursor);
dbms_output.put_line(v_partpreflag掉落| |);
结束;

承诺;

插入bip_log_stat_exec_tab
价值观
(to_char(SYSDATE,'yyyymmddhh24miss),
bip_mms_partition_proc_del,
结束;
承诺;
例外
当别人然后
开始
回降;
dbms_output.put_line(to_char(SQLCODE));
VErrInfo:= substr(sqlerrm,1, 200);
dbms_output.put_line(to_char(verrinfo));
插入bip_log_stat_exec_tab
价值观
(to_char(SYSDATE,'yyyymmddhh24miss),
bip_mms_partition_proc_error,
VErrInfo);
承诺;
结束;

最后bip_mms_partition_proc;