目录
一、存储过程简介及基础语法
(一)定义
存储过程是一组为了完成特定功能的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条建表语句
我们创建存储过程的目标需求:批量建表。
但是我们希望表名包含执行当天的日期,因此表名不能写死,不然手动修改增加很多工作。
上述是查询语句,查询结果