Oracle 存储过程动态建表

简介:

动态sql,顾名思义就是动态执行的sql,也就是说在没执行之前是动态的拼接的。

任务

传入参数:新建的表名hd+当前的年和月,例如hd_201105
表结构是:字段1:id ,类型是number,可以自动增加
字段2:name 类型是varcha2,长度20
字段3:city 类型是varchar2,长度20

 

建立序列:

复制代码
create sequence t_id
increment by 1
start with 1
nomaxvalue
cache 20;
复制代码

 

建立自动建表过程:

复制代码
create or replace procedure pro_createtable(tname in varchar2  default to_char(sysdate,'yyyymm'))
as
  v_sql varchar2(200);
  v_tname varchar2(10);
begin
  if length(tname)<>6 then
    raise_application_error(-20000,'输入参数长度不够,不能转换为日期格式!');
  end if ;
  if to_number(substr(tname,5,2)) not between 1 and 12 then
     raise_application_error(-20001,'输入参数中不包含有效的月份数字,不能转换为日期格式!');
  end if ;
  --v_tname:=to_char(to_date(tname,'yyyymm'),'yyyymm');
  v_tname:='hd_'||tname;
  v_sql:='create table '||v_tname||' ('||
         'id number not null,'||
         'name varchar2(20),'||
         'city varchar2(20))'||
         'tablespace users';
  execute immediate v_sql;
end;
复制代码

 

 测试:

复制代码
begin
    pro_createtable;
    pro_createtable('201106');
    pro_createtable('201115');--报错
end;
复制代码

 

 

 

 

 

参考文章

想用oracle的存储过程动态建表

oracle存储过程中如何使用动态sql

 

没有整理与归纳的知识,一文不值!高度概括与梳理的知识,才是自己真正的知识与技能。 永远不要让自己的自由、好奇、充满创造力的想法被现实的框架所束缚,让创造力自由成长吧! 多花时间,关心他(她)人,正如别人所关心你的。理想的腾飞与实现,没有别人的支持与帮助,是万万不能的。






    本文转自wenglabs博客园博客,原文链接:http://www.cnblogs.com/arxive/p/5968567.html ,如需转载请自行联系原作者



相关文章
|
2月前
|
存储 SQL Oracle
Oracle系列十五:存储过程
Oracle系列十五:存储过程
|
17天前
|
SQL 存储 Oracle
一篇文章带你学会 Oracle 存储过程的基本介绍和高阶用法(上)
一篇文章带你学会 Oracle 存储过程的基本介绍和高阶用法
|
4月前
|
存储 Java 数据库
JAVAEE框架数据库技术之13_oracle 之PLSQL技术及存储过程和函数(二)
JAVAEE框架数据库技术之13_oracle 之PLSQL技术及存储过程和函数
39 0
|
17天前
|
SQL 存储 Oracle
一篇文章带你学会 Oracle 存储过程的基本介绍和高阶用法(下)
一篇文章带你学会 Oracle 存储过程的基本介绍和高阶用法
|
23天前
|
存储 NoSQL Oracle
Oracle 12c的内存列存储:数据的“闪电侠”
【4月更文挑战第19天】Oracle 12c的内存列存储以超高速度革新数据处理,结合列存储与内存技术,实现快速查询与压缩。它支持向量化查询和并行处理,提升效率,但需合理配置以平衡系统资源。作为数据管理员,应善用此功能,适应业务需求和技术发展。
|
23天前
|
存储 SQL Oracle
Oracle存储过程与自定义函数的调用:异同与实战场景
【4月更文挑战第19天】Oracle的存储过程与自定义函数各有特色,存储过程用于封装复杂SQL操作,常在批量处理和数据维护中使用,通过CALL或EXECUTE调用;而自定义函数则用于简单计算和查询,返回单一值,可直接在SQL语句中调用。了解两者异同,如返回值方式、调用方式和应用场景,能提升数据库管理效率。实战场景包括:使用存储过程定期清理过期数据,用自定义函数在查询中动态计算字段值。
|
23天前
|
存储 SQL Oracle
Oracle存储过程:数据王国的魔法师
【4月更文挑战第19天】Oracle存储过程是封装复杂SQL操作的魔法工具,存储在数据库中以便重复调用。它们提供高效执行和安全,类似于预编译的程序。创建存储过程涉及定义名称和参数,如示例所示,创建一个根据员工ID获取姓名和薪资的`get_employee_info`过程。调用存储过程可提高代码可读性和性能,使数据库管理更为便捷。
|
1月前
|
存储 SQL Oracle
【Oracle】玩转Oracle数据库(二):体系结构、存储结构与各类参数
【Oracle】玩转Oracle数据库(二):体系结构、存储结构与各类参数
42 7
|
4月前
|
存储 SQL Java
JAVAEE框架数据库技术之13_oracle 之PLSQL技术及存储过程和函数(一)
JAVAEE框架数据库技术之13_oracle 之PLSQL技术及存储过程和函数
36 0
|
1月前
|
存储 SQL NoSQL
mysql存储过程和存储函数
mysql存储过程和存储函数

推荐镜像

更多