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 只能用在查询语句中,不能单独使用,由于每个条件查询的表都不一样,改写不能