DECLARE
VLISTID1 PARAMLIST:=GET_PARAMETER_LIST('REPORTARGUMENTS1');
begin
IF ID_NULL(VLISTID1) THEN
VLISTID1:=CREATE_PARAMETER_LIST('REPORTARGUMENTS1');
ADD_PARAMETER(VLISTID1,'P_GROUP_ID',TEXT_PARAMETER,to_char(:parameter.p_GROUP_ID));
ELSE
SET_PARAMETER_ATTR(VLISTID1,'P_GROUP_ID',TEXT_PARAMETER,to_char(:parameter.p_GROUP_ID));
END IF;
RUN_PRODUCT(REPORTS,'WIPAZYLL',ASYNCHRONOUS,RUNTIME,FILESYSTEM,VLISTID1);
END;---------------------------------------
上述代码
如参数表VLISTID1为空则创建它,且插入参数'P_GROUP_ID'
如参数表VLISTID1不为空则直接为里面的参数'P_GROUP_ID'赋值可以发现问题是:如果参数表VLISTID1已经在其他FORM上被创建,但未为它插入参数'P_GROUP_ID'
则程序走第二条分支,直接为参数'P_GROUP_ID'赋值,此时就会出错了我想问问此程序应该怎么改
有没有VLISTID1 EXISTS PARAMETER 'P_GROUP_ID'? 这样的函数来判断参数表是否存在某名称的参数?
VLISTID1 PARAMLIST:=GET_PARAMETER_LIST('REPORTARGUMENTS1');
begin
IF ID_NULL(VLISTID1) THEN
VLISTID1:=CREATE_PARAMETER_LIST('REPORTARGUMENTS1');
ADD_PARAMETER(VLISTID1,'P_GROUP_ID',TEXT_PARAMETER,to_char(:parameter.p_GROUP_ID));
ELSE
SET_PARAMETER_ATTR(VLISTID1,'P_GROUP_ID',TEXT_PARAMETER,to_char(:parameter.p_GROUP_ID));
END IF;
RUN_PRODUCT(REPORTS,'WIPAZYLL',ASYNCHRONOUS,RUNTIME,FILESYSTEM,VLISTID1);
END;---------------------------------------
上述代码
如参数表VLISTID1为空则创建它,且插入参数'P_GROUP_ID'
如参数表VLISTID1不为空则直接为里面的参数'P_GROUP_ID'赋值可以发现问题是:如果参数表VLISTID1已经在其他FORM上被创建,但未为它插入参数'P_GROUP_ID'
则程序走第二条分支,直接为参数'P_GROUP_ID'赋值,此时就会出错了我想问问此程序应该怎么改
有没有VLISTID1 EXISTS PARAMETER 'P_GROUP_ID'? 这样的函数来判断参数表是否存在某名称的参数?
解决方案 »
- 如何替换所有的空格为一个空格呢?
- 急问ORACLE 9I简单的问题
- oracle存储过程连接SQL Server
- pl sql `rowid作用??
- 请问,一个oracle的安装问题,请诸位高手多多指教
- 这个个查询 问题还真把人难住了!!
- ORACLE Table 前面的Ower的問題
- 能不能在一个游标里再打开一个游标?
- Oracle Management Server不能启动(Win2003+Oracle8.1.7)
- 为什么执行备份JOB时,MANAGER SERVER服务会断开呢,在线等待
- (爆简单.)Oracle游标循环---for与fetch
- 请高手帮忙把这段.net定义的代码变成纯正的Oracle语句
我自己没有运行环境调试不到,等大虾们看看判断参数表内是否有某参数是不是这么写?declare
ls_center varchar2(6);
x_dept varchar2(20):='PO';
VLISTID PARAMLIST:=GET_PARAMETER_LIST('tempdata');
begin
IF ID_NULL(VLISTID) THEN
VLISTID:=CREATE_PARAMETER_LIST('tempdata');
END IF;
IF GET_PARAMETER_ATTR(VLISTID,'P_REP',TEXT_PARAMETER,x_dept) IS NULL THEN /*这里是这么判断吗?*/
ADD_PARAMETER(VLISTID,'P_REP',TEXT_PARAMETER,x_dept);
ELSE
SET_PARAMETER_ATTR(VLISTID,'P_REP',TEXT_PARAMETER,x_dept);
END IF; RUN_PRODUCT(REPORTS,'PORCVMQ',ASYNCHRONOUS,RUNTIME,FILESYSTEM,VLISTID,NULL);
end;
VLISTID1 PARAMLIST:=GET_PARAMETER_LIST('REPORTARGUMENTS1');
BEGIN
IF NOT ID_NULL(VLISTID1) THEN
DESTROY_PARAMETER_LIST(VLISTID1);
END IF;
VLISTID1:=CREATE_PARAMETER_LIST('REPORTARGUMENTS1');
ADD_PARAMETER(VLISTID1,'P_GROUP_ID',TEXT_PARAMETER,to_char(:parameter.p_GROUP_ID));
RUN_PRODUCT(REPORTS,'WIPAZYLL',ASYNCHRONOUS,RUNTIME,FILESYSTEM,VLISTID1);
END;