我需要帮助.
(我搜索了很多并且变得更加困惑.)
(我搜索了很多并且变得更加困惑.)
我使用Toad 9.7.25并且我做了这个程序(在一个包中)
PROCEDURE ReportaCC(pfcorte IN DATE,lcursor IN OUT SYS_REFCURSOR) IS BEGIN OPEN lcursor FOR select c1,c3,c3 from table1 where hdate = pfcorte; close lcursor; END;
在toad的sql编辑器中,我想执行该过程并将光标结果显示在toad的datagrid中:
--- I WANT THIS CODE CAN EXECUTE IN TOAD'S sql EDITOR. DECLARE PFCORTE DATE; LCURSOR SYS_REFCURSOR; BEGIN PFCORTE := '31/08/2012'; -- LCURSOR := NULL; -- Modify the code to initialize this parameter mypaq.REPORTACC( TO_DATE(PFCORTE,'DD/MM/YYYY'),LCURSOR ); :to_grid := LCURSOR; COMMIT; END;
当我执行脚本(F9),并设置变量:to_grid类型光标,
我得到了下一个错误:
“ORA-24338:语句句柄未执行”
可能是什么问题
提前致谢.
谢谢你的四个帖子……工作得很好!
但现在有另一个问题……
如果我替换这样的复杂查询(从表中选择c1,c2,c3 …):
PROCEDURE ReportaCC(pfcorte IN DATE,lcursor OUT SYS_REFCURSOR) IS BEGIN OPEN lcursor FOR SELECT ENC.CVEOTORGANTE,ENC.NOMBREOTORGANTE,ENC.IDENDINTIFICADORDEMEdio,TO_CHAR(SYSDATE,'YYYYMMDD') AS FECHAEXT,ENC.NOTAOTORGANTE,CIRCRED.valida_cc.QUITASIGNOS(VCL.APELLIDOPATERNO) AS VAL_APELLIDOPATERNO,CIRCRED.valida_cc.QUITASIGNOS(VCL.APELLIDOMATERNO) AS VAL_APMATERNO,CIRCRED.valida_cc.QUITASIGNOS(VCL.APELLIDOADICIONAL) AS APELLIDOADICIONAL,CIRCRED.valida_cc.QUITASIGNOS(VCL.NOMBRES) AS NOMBRES,VCL.FECHANACIMIENTO,circred.valida_cc.valida_rfc(Vcl.rfc,'CORRIGE') AS VALRFC,circred.valida_cc.valida_curp(VCL.CURP,'CORRIGE') AS VALCURP,VCL.NACIONALIDAD,circred.valida_cc.valida_RESIDENCIA('ESIACOM',SC.TIPOVIV ) AS VAL_RESIDENCIA,VCL.NUMEROLICENCIACONDUCIR,circred.valida_cc.valida_EDOCIVIL('ESIACOM',VCL.ESTADOCIVIL) AS VAL_ESTADOCIVIL,VCL.SEXO,circred.valida_cc.valida_IFE(VCL.CLAVEELECTORIFE,'CORRIGE') AS CLAVEELECTORIFE,VCL.NUMERODEPENDIENTES,VCL.FECHADEFUNCION,VCL.INDICADORDEFUNCION,VCL.TIPOPERSONA,CIRCRED.valida_cc.QUITASIGNOS(VCL.DIRECCION) AS DIRECCION,CIRCRED.valida_cc.QUITASIGNOS(VCL.COLONIAPOBLACION) AS COLONIAPOBLACION,CIRCRED.valida_cc.QUITASIGNOS(VCL.DELEGACIONMUNICIPIO) AS DELEGACIONMUNICIPIO,CIRCRED.valida_cc.QUITASIGNOS(VCL.CIUDAD) AS CIUDAD,VCL.ESTADO,circred.valida_cc.valida_cp(VCL.CP,VCL.CDGEF) AS VAL_CP,VCL.FECHARESIDENCIA,circred.valida_cc.valida_TEL(VCL.NUMEROTELEFONO,'CORRIGE') AS VAL_TEL,circred.valida_cc.valida_TIPODOMICILIO('ESIACOM','C') AS VAL_TIPODOMICILIO,VCL.TIPOASENTAMIENTO,EMP.*,ENC.CVEOTORGANTE CVEACTUAL,SAL.CUENTAACTUAL,SAL.TIPORESPONSABILIDAD,SAL.TIPOCUENTA,SAL.TIPOCONTRA,SAL.CLAVEUNIDADMONETARIA,SAL.VALORACTIVOVALUACION,SAL.NUMPAGOS,SAL.FREQPAGOS,SAL.PAGOPACCL,SAL.FECHAAPERTURACUENTA,TO_CHAR(circred.valida_cc.FUN_FULTDEPCL(sal.CLNS,sal.CDGNS,sal.CDGCL,sal.CICLO,SAL.INICICLO,pfcorte ),'YYYYMMDD') AS FULTPAGO,SAL.FECHAULTIMACOMPRA,SAL.FECHACIERRECUENTA,SAL.FECHACORTE,SAL.GARANTIA,SAL.CREDITOMAXIMO,SAL.SALDOCL,SAL.limitecredito,SAL.SDOVENCL,SAL.NUMPAGVEN,SAL.pagoactual,SAL.HISTORICOPAG,SAL.CLAVEPREVENCION,SAL.TOTPAGREP,SAL.CLAVEANTERIOROTORGANTE,SAL.NOMBREANTERIOROTORGANTE,SAL.NUMEROCUENTAANTERIOR,SAL.SUMSALDO,SAL.sumsdoven,SAL.numcred,SAL.numdirecc,SAL.numempleo,SAL.numctas,NULL AS DOMDEVOL FROM CIRCRED.VW_ENCABEZADO ENC,circred.VW_DATOSPERDOM VCL,ICARO.VW_PROYINVE SC,CIRCRED.EMPLEO EMP,CIRCRED.VW_SALDOINCOB SAL WHERE SAL.FUENTEBD = 'ESIACOM' AND SAL.CDGCL = VCL.CDGCL AND SAL.CDGCL = SC.CDGCL(+) AND SAL.CICLO = SC.CICLO(+) and SAL.INICICLO = SC.INICIO(+) AND SAL.FCORTE = pfcorte AND SAL.STATUSCC IN ('INCOB','CIERR','CEROS') ; END ReportaCC;
为什么不能显示结果?
(如果我直接在TOAD sql编辑器中执行它,查询工作正常)
再次感谢….!!!