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;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM