Oracle存储过程创建表

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Oracle存储过程创建表
⽤存储过程创建数据表:
创建时注意必须添加authid current_user ,如果创建的表已存在,存储过程继续执⾏,但如不不加此关键语句,存储过程将出现异常,这个语句相当于赋权限。

创建语句如下:
create or replace
procedure sp_create_mnl(i_id varchar2) authid current_user as
/*********************************
名称:sp_create_mnl
功能描述:创建模拟量历史数据存储表
修订记录:
版本号编辑时间编辑⼈修改描述
1.0.0 2012-9-20 wylaok 1.创建此存储过程
1.0.1 2012-9-21 wylaok
2.修改表名称及变量名称,增加必要注释
⼊参出参描述:
i_id 测点编号
**********************************/
v_tablename varchar2(30);--表名
v_flag number(10,0);
v_sqlfalg varchar(200);
begin
v_flag:=0;
v_tablename:=CONCAT('MNL', UPPER(i_id));
v_sqlfalg:='select count(*) from user_TABLES where table_name='''||v_tablename||'''';
dbms_output.put_line(v_sqlfalg);
execute immediate v_sqlfalg into v_flag;
if v_flag=0 then --如果没有这个表则去创建
begin
execute immediate 'create table '||v_tablename ||'
( DATETIME DATE,
MIN00 FLOAT,
AGV00 FLOAT,
MAX00 FLOAT,
MIN05 FLOAT,
AVG05 FLOAT,
MAX05 FLOAT,
MIN10 FLOAT,
AGV10 FLOAT,
MAX10 FLOAT,
MIN15 FLOAT,
AGV15 FLOAT,
MAX15 FLOAT,
MIN20 FLOAT,
AGV20 FLOAT,
MAX20 FLOAT,
MIN25 FLOAT,
AGV25 FLOAT,
MAX25 FLOAT,
MIN30 FLOAT,
AGV30 FLOAT,
MAX30 FLOAT,
MIN35 FLOAT,
AGV35 FLOAT,
MAX35 FLOAT,
MIN40 FLOAT,
AGV40 FLOAT,
MAX40 FLOAT,
MIN45 FLOAT,
AGV45 FLOAT,
MAX45 FLOAT,
MIN50 FLOAT,
AGV50 FLOAT,
MAX50 FLOAT,
MIN55 FLOAT,
AGV55 FLOAT,
MAX55 FLOAT,
MINV FLOAT,
MAXV FLOAT,
AVGV FLOAT,
MAXTIME DATE,
MINTIME DATE
)
tablespace WYG
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 512K
next 512K
minextents 1
maxextents unlimited
pctincrease 0
)';
-- execute immediate sqlstr; end;
end if;
end;
调⽤此存储过程:begin
createmnl('mnl_14');
end;。

相关文档
最新文档