採用oracle sequence及function為章節資訊表(四級自關聯表)批量新增關聯資料

wisdomone1發表於2010-07-15
為了批量新增資料
1,先構建要插入表的最大pk 最大值的函式
     
create or replace function f_get_tmp_content_maxid ##可以定義輸入引數,同理sp
return char ##返回結果資料型別,不要帶具體的資料型別長度比如:char(16)
as  ###這個as下面和sp一樣了
v_maxid char(16);  ###這裡要定義一個返回結果集的具體資料型別了,哈哈
begin
select lpad(max(chapter_id)+1,16,'0') into v_maxid from c_chapter_info;##用into接受這個返回的資料
return v_maxid;##用return子句返回處理結果 給應用或其他呼叫端
end;
 
2,先構建序列
     
     create sequence seq_only_maxid start with 65 increment by 1 nomaxvalue;
###注:以上序列最大值源於第1步函式得到的值
 
3,     從臨時表中匹配提取用於插入到最終單節資訊表的資料
 
select lpad(seq_only_maxid.nextval,16,'0'),a.* from (
select distinct *
from (
select chapter,version,version_id,subjectid,xiuid from tmp_content
     )) a    

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9240380/viewspace-668129/,如需轉載,請註明出處,否則將追究法律責任。

相關文章