動態sql,顧名思義就是動態執行的sql,也就是說在沒執行之前是動態的拼接的。
任務
傳入引數:新建的表名hd+當前的年和月,例如hd_201105
表結構是:欄位1:id ,型別是number,可以自動增加
欄位2:name 型別是varcha2,長度20
欄位3:city 型別是varchar2,長度20
建立序列:
create建立自動建表過程:sequence t_id
increment by1
start
with
1nomaxvalue
cache
20;
create測試:orreplace
procedure pro_createtable(tname in
varchar2
default to_char(sysdate,'
yyyymm'))
asv_sql
varchar2(200
); v_tname
varchar2(10
);begin
if length(tname)<>
6then
-20000,'
輸入引數長度不夠,不能轉換為日期格式!');
endif;
if to_number(substr(tname,5,2)) not
between
1and
12then
-20001,'
輸入引數中不包含有效的月份數字,不能轉換為日期格式!');
endif;
--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;
想用oracle的儲存過程動態建表
oracle儲存過程中如何使用動態sql
沒有整理與歸納的知識,一文不值!高度概括與梳理的知識,才是自己真正的知識與技能。 永遠不要讓自己的自由、好奇、充滿創造力的想法被現實的框架所束縛,讓創造力自由成長吧! 多花時間,關心他(她)人,正如別人所關心你的。理想的騰飛與實現,沒有別人的支援與幫助,是萬萬不能的。
ORACLE中建儲存過程
建立測試表 create table xiaoyan id number primary key,username varchar2 24 age varchar2 3 address varchar2 1024 other varchar2 1024 comment on table xiaoya...
oracle 動態儲存過程
1.定時 begin sys.dbms scheduler.create job job name job pro his delete cp job type stored procedure job action pro his delete cp start date sysdate,repe...
MYSQL批量建表儲存過程
分表比較多的情況,如何批量建立,可通過儲存過程實現 建立乙個儲存過程 紅色表結構,藍色為表名及表數量 delimiter create procedure sp create tab begin set str id int 11 not null auto increment comment 自增...