博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle 存储过程动态建表
阅读量:6174 次
发布时间:2019-06-21

本文共 991 字,大约阅读时间需要 3 分钟。

 

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

任务

传入参数:新建的表名hd+当前的年和月,例如hd_201105

表结构是:字段1:id ,类型是number,可以自动增加
字段2:name 类型是varcha2,长度20
字段3:city 类型是varchar2,长度20

 

建立序列:

create sequence t_idincrement by 1start with 1nomaxvaluecache 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;

 

 

 

 

 

参考文章

 

转载地址:http://xqmba.baihongyu.com/

你可能感兴趣的文章
xml返回数组数据
查看>>
约瑟夫问题总结
查看>>
spring mybatis 批量插入返回主键
查看>>
指针函数小用
查看>>
开源力量公开课第二十三期-从SVN到Git,次时代代码管理
查看>>
输入挂
查看>>
升级迁移前,存储过程统计各个用户下表的数据量,和迁移后的比对
查看>>
sql注入分类
查看>>
初识CSS选择器版本4
查看>>
[Hadoop in China 2011] 朱会灿:探析腾讯Typhoon云计算平台
查看>>
JavaScript之数组学习
查看>>
PHP 设置响应头来解决跨域问题
查看>>
CAS实现SSO单点登录原理
查看>>
博客园美化专用图片链接
查看>>
HDU_1969_二分
查看>>
高等代数葵花宝典—白皮书
查看>>
一种简单的图像修复方法
查看>>
基于DobboX的SOA服务集群搭建
查看>>
C#设计模式之装饰者
查看>>
[noip模拟20170921]模版题
查看>>