这个sql怎么写? - Oracle / 开发
有 a1 b1 c1三段sql代码和一个变量data_date,当data_date='01'时,执行a1这一段代码,当data_date='02'时,执行b1这一段代码,当data_date='03'时,执行c1这一段代码,这个sql怎么写?
SQL code:
CASE data_date
WHEN '1'
THEN EXECUTE IMMEDIATE a1;
WHEN '2'
THEN EXECUTE IMMEDIATE b1;
ELSE EXECUTE IMMEDIATE c1;
END CASE;
create or replace procedure proc1
(a1 in varchar2,
b1 in varchar2,
c1 in varchar2,
data_date in varchar2
) is
begin
if data_date is null then
dbms_output.put_line('Error parameter: no value for data_date');
elsif data_date = '01' then
execute immediate a1;
elsif data_date = '02' then
execute immediate b1;
elsif data_date = '03' then
execute immediate c1;
else
dbms_output.put_line('Error parameter: value for data_date is not in (''01'',''02'',''03'')');
end if;
end;
动态拼接好sql 然后判断 执行
SQL code:
CREATE OR REPLACE PROCEDURE test_proc(v_data_date varchar2)
AS
sql1 VARCHAR2(200);
sql2 VARCHAR2(200);
sql3 VARCHAR2(200);
BEGIN
sql1 := 'SELECT emp, sal, depton from em
相关问答:
我一个项目,有个插入操作,具体是这样的:
我有进货信息表。在出货时选择相应的进货信息,输入数量,选择部门后,点保存按钮,由于网络延时,点一下没有反映,于是用户就又点一下,导致一次插入了两条记录:
例:
......
在系统运行的时候总是有一块磁盘始终闪红灯,进入系统后
#topas查看总是有一块磁盘%BUSY为90%以上,
数据库版本:oracle 9.2.0.7
数据文件挂载的节点:/oradata/pcs/ 逻辑卷号lv04
#lslv -l lv04
......
tab1 字段:billdate,goodsid,incount,inmoney,outcount,outmoney,endprice,endcount,endamt
tab2 字段:goodsid,goodskind(商品类型)
tab3 字段:goodskind(商品类型),kindname
结果:
得到商品类型在一段时间 ......
我的处理是这样的:
我有一个很大的数据集合,处于性能方面的考虑需要使用临时表过渡,并且使用分页的方式向临时表中插入数据,数据使用完毕后,删除临时表的数据。
出现的现象:当Oracle重新启动后,第一页插入的 ......
--建立一个包以定义一个游标
create or replace package PK_test
as
type cur_test is ref cursor;
end PK_test;
--建立一个过程,通过输入JOBID,返回一个表记录(游标)!
create or replace ......