ORACLE存储过程批量建表-笔记

这篇博客介绍了如何使用Oracle存储过程批量创建包含日期的动态表,详细讲解了存储过程的基础语法、建表语句分析、编写存储过程并解决遇到的权限和赋值问题,同时提供了测试过程和参考资料。
摘要由CSDN通过智能技术生成

目录

一、存储过程简介及基础语法

二、建表语句分析

三、编写存储过程并测试

四、本次所遇到问题记录

五、附录


一、存储过程简介及基础语法

(一)定义

    存储过程是一组为了完成特定功能的SQL语句,经编译后存储在数据库中。

    存储过程分为两种:(1)无参存储过程;(2)带参存储过程。

(二)基础语法(无参)

create or replace procedure [存储过程名] is

begin

null;

end [存储过程名];

 其中:

create or replace procedure:一个SQL语句,通知Oracle数据库去创建一个叫做[存储过程名]的存储过程, 如果存在就覆盖它;。

[存储过程名]:自定义的名称,根据创建时填写的名称自动生成。

is:关键词,表明后面将跟随一个PL/SQL体。

begin:关键词,表明PL/SQL体的开始。

null :PL/SQL语句,如果什么事都不做,这句不能删去,因为PL/SQL体中至少需要有一句;

end:关键词,表明PL/SQL体的结束。

二、建表语句分析

 此处只截取了部分建表语句

select 'create table '||project_name||to_char(sysdate,'MMDD') ||' tablespace  XINJIA_DATA as 
select * from '||project_name||'@LINK96; '
from table_temp
where table_temp.project_name='contract_condition_term'
union
select 'create table '||project_name||to_char(sysdate,'MMDD') ||' tablespace  XINJIA_DATA as
select * from '||project_name||'@LINK96; '
from table_temp
where table_temp.project_name='contract_equip'
union all
select 'create table '||project_name||to_char(sysdate,'MMDD') ||' tablespace  XINJIA_DATA as
select * from '||project_name||'@LINK96; '
from table_temp
where table_temp.project_name='contract_fund_rent_income'

其执行查询结果如下:

 即:3条建表语句

我们创建存储过程的目标需求:批量建表。

但是我们希望表名包含执行当天的日期,因此表名不能写死,不然手动修改增加很多工作。

上述是查询语句,查询结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值