oracle 06502 解决,ora-06502如何解决。。。

[PHP]

试试!

create or replace procedure SYS_bodby(P_XTBH   varchar2,

P_DBLINK varchar2,

P_RQZD   VARCHAR2,

C out ZSP_DBZ0001.cur)

is

v_lssjbody varchar2(4000);

v_lsSJSEL  varchar2(4000);

v_QXSEL    varchar2(8000);

v_SJSEL    varchar2(8000);

V_SQL      VARCHAR2(8000);

V_SJJMC    VARCHAR2(30);

V_JCDM     DBZ0010.JCDM%TYPE;

V_JCMC     DBZ0010.JCMC%TYPE;

V_CLDM     DBZ0010.CLDM%TYPE;

V_QX1      VARCHAR2(400);

V_SJ1      VARCHAR2(400);

V_COUNT    NUMBER(4);

CURSOR CUR_SJJMC IS

SELECT SJJMC FROM DBZ0010 WHERE XTBH = P_XTBH GROUP BY SJJMC;

CURSOR CUR_JCDM(V_SJJMC VARCHAR2) IS

SELECT JCDM, JCMC, CLDM

FROM DBZ0010

WHERE SJJMC = V_SJJMC

and rownum < 50;

begin

delete from SYS_SQL;

OPEN CUR_SJJMC;

FETCH CUR_SJJMC INTO V_SJJMC;

WHILE CUR_SJJMC%FOUND LOOP

OPEN CUR_JCDM(V_SJJMC);

SELECT COUNT(*)

INTO V_COUNT

FROM DBZ0010

WHERE XTBH = P_XTBH

and SJJMC = V_SJJMC;

FETCH CUR_JCDM INTO V_JCDM, V_JCMC, V_CLDM;

WHILE CUR_JCDM%FOUND LOOP

v_QXSEL := '';

v_SJSEL := '';

V_QX1   := '';

V_SJ1   := '';

SELECT V_JCDM || ' AS ' ||

decode(V_CLDM,

null,

'"' || V_JCMC || ';C8;P",',

'"' || V_JCMC || '(' || V_CLDM || ');C8;P",')

INTO V_QX1

FROM DUAL;

SELECT V_JCDM || ' AS ' ||

decode(V_CLDM,

null,

'"' || V_JCMC || '",',

'"' || V_JCMC || '(' || V_CLDM || ')",')

INTO V_SJ1

FROM DUAL;

IF V_COUNT = 1 THEN

V_QX1 := RTRIM(V_QX1, ',');

V_SJ1 := RTRIM(V_SJ1, ',');

END IF;

v_QXSEL := v_QXSEL || V_QX1 || CHR(13) || CHR(10);

v_SJSEL := V_SJSEL || V_SJ1 || CHR(13) || CHR(10);

FETCH CUR_JCDM INTO V_JCDM, V_JCMC, V_CLDM;

V_COUNT := V_COUNT - 1;

END LOOP;

CLOSE CUR_JCDM;

END LOOP;

CLOSE CUR_SJJMC;

END;

[/PHP]

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值