sqlcase存儲過程
『壹』 oracle中存儲過程case怎麼用
case when a=1 then 1 when a=2 then 2 else 3 end; 語法網上一搜一大把呀
『貳』 oracle存儲過程怎樣批量插入新數據
需要生成的sql
insert into TMP_UPSTATE_CASEKEY values('TMP0000001', 1, sysdate);
存儲過程實現
create or replace procere proc_casekey_upstate
as
casekey char(14);
begin
for i in 1..10000000 loop
casekey := 'TMP'||lpad(i,7,0); -- TMP0000001
insert into TMP_UPSTATE_CASEKEY values(casekey, 1, sysdate);
end loop;
commit;
end;
begin
proc_casekey_upstate();
end;
測試發現生成一千萬條數據用了14分鍾左右,性能還是可以了,如果先去掉TMP_NUM_STATUS_ID的外鍵估計更快。
或者:
insert into TMP_UPSTATE_CASEKEY select 'TMP'||LPAD(rownum,7,0),1,sysdate from al connect by level <= 1000000;
『叄』 有關SQL存儲過程變數模糊查詢
select
*
from
user
where
user_name
like
'%'
||
變數
||
'%'
這樣寫就可以了。
『肆』 sql 存儲過程中 用case when 替代if else
SQL中的case when 只能用在查詢語句中,不能單獨使用,由於每個條件查詢的表都不一樣,改寫不能