Urgente, sobre procedimiento alamacenado.
Publicado por Leonardo (27 intervenciones) el 21/10/2002 17:52:56
Esta sentencia sql esta en un procedimiento almacenado funciona bien en una base de datos Oracle 8i,
pero al colocarla en una base de datos Oracle 7.3 me envia este error:
PLS-00950:In this version PL/SQL tables can not be used is this SQL statement
El error lo genera la variable v_cuantos que utilizo en la sentencia,
lo probe en el SQLplus le antepongo un & a la variable y funciona bien.
En el procedimiento almacenado la variable esta declarada, no entiendo porque no funciona
si en el resto de la sentencia utilizo otras variables.
La sentencia es la siguiente:
select round(sum(uno.dias * dos.dias)) into v_dias
from (select cali_cod, (count(trunc(nvl(mgel_fecultabo,to_date(sysdate)) - mgel_fecven)))/v_cuantos as dias
from siacc_tmgeliq, siacc_tconobl, siacc_tcalifi
where coob_coob = mgel_coob
and cali_tipcal = 'C'
and mgel_tipliq in ('I','S')
and coob_obli = (select coob_obli
from siacc_tconobl, siacc_tmgeliq
where coob_coob = mgel_coob
and mgel_mgel = p_mgel)
and (trunc(nvl(mgel_fecultabo,to_date(sysdate)) - mgel_fecven) ) >= decode(cali_desde,0,-10000,cali_desde)
and (trunc(nvl(mgel_fecultabo,to_date(sysdate)) - mgel_fecven) ) <= decode(cali_hasta,0,10000,cali_hasta)
group by cali_cod) uno,
(select cali_cod, trunc(((decode(cali_hasta,0,cali_desde,cali_hasta) - cali_desde)/2) + cali_desde) as dias
from siacc_tcalifi
where cali_tipcal = 'C') dos
where uno.cali_cod = dos.cal
pero al colocarla en una base de datos Oracle 7.3 me envia este error:
PLS-00950:In this version PL/SQL tables can not be used is this SQL statement
El error lo genera la variable v_cuantos que utilizo en la sentencia,
lo probe en el SQLplus le antepongo un & a la variable y funciona bien.
En el procedimiento almacenado la variable esta declarada, no entiendo porque no funciona
si en el resto de la sentencia utilizo otras variables.
La sentencia es la siguiente:
select round(sum(uno.dias * dos.dias)) into v_dias
from (select cali_cod, (count(trunc(nvl(mgel_fecultabo,to_date(sysdate)) - mgel_fecven)))/v_cuantos as dias
from siacc_tmgeliq, siacc_tconobl, siacc_tcalifi
where coob_coob = mgel_coob
and cali_tipcal = 'C'
and mgel_tipliq in ('I','S')
and coob_obli = (select coob_obli
from siacc_tconobl, siacc_tmgeliq
where coob_coob = mgel_coob
and mgel_mgel = p_mgel)
and (trunc(nvl(mgel_fecultabo,to_date(sysdate)) - mgel_fecven) ) >= decode(cali_desde,0,-10000,cali_desde)
and (trunc(nvl(mgel_fecultabo,to_date(sysdate)) - mgel_fecven) ) <= decode(cali_hasta,0,10000,cali_hasta)
group by cali_cod) uno,
(select cali_cod, trunc(((decode(cali_hasta,0,cali_desde,cali_hasta) - cali_desde)/2) + cali_desde) as dias
from siacc_tcalifi
where cali_tipcal = 'C') dos
where uno.cali_cod = dos.cal
Valora esta pregunta


0