cognos oracle sql,cognos创建基于存储过程的dml报表以及UDA-SQL-0283的处理办法

cognos8.1

oracle 10.2.0.1

CREATE OR REPLACE PROCEDURE sp_veh_vip_list_update_jn

(

is_vip_name in varchar2,

v_stat_list out SYS_REFCURSOR

)

AS

-------------------------------------------------脱保备注---------------------------------------------

--

--vs_msg   VARCHAR2(4000);   --错误信息变量

vs_sql_str varCHAR2(4000);

vs_vip_name  varchar2(400);

vs_count int;

begin

----第一步--处理变量

vs_vip_name:=trim(is_vip_name);

if length(vs_vip_name)<2 then

os_sql:='客户的名称出现错误,不能添加!';

open v_stat_list for select os_sql,vs_vip_branch_cname as vip_branch_name from dual;

return;

end if;

---2.1---插入成因表

vs_sql_str:='insert into vip_code_jn(vip_name)

values('''||vs_vip_name||''')';

execute   immediate   vs_sql_str  ;

--------------------------------------------------------------

--判断是否添加成功

-------------------------------------------------------------------

os_sql :='客户的信息已经添加,维护完毕!';

open v_stat_list for select os_sql,vs_vip_name from dual;

-----------------------------------------------------------over------------------------------------------------------------------

-- DBMS_OUTPUT.put_line('ins当月记录='||SQL%rowcount||'条');

COMMIT;

exception

when others then

--vs_msg := 'ERROR IN xxxxxxxxxxx_p(''):'||SUBSTR(SQLERRM,1,500);

dbms_output.put_line(vs_sql_str);

dbms_output.put_line(SQLERRM);

---如果回滚,需要清除本次插入记录

--open v_stat_list for 'select '''||sqlcode||''' msg from dual';

--os_sql :=vs_sql_str;

--||vs_sql_str1||vs_sql_str2||SUBSTR(SQLERRM,1,500);

--||vs_sql_str1||vs_sql_str2||SUBSTR(SQLERRM,1,500);

ROLLBACK;

end   sp_veh_vip_list_update_jn;

由于必须以结果集返回结果,所以要用游标。

如果有判断,返回结果可能不一致,从而导致UDA-SQL-0283。

要解决这个,就必须要求在返回结果处返回的结果是统一类型与长度。

fm里query object在创建存储过程返回结果对应的结构应该是以第一次测试返回的结果进行匹配的,后续的返回值如果与保存的结构不一致,就会报错。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值