Pregunta: | 28011 - ERROR INTERNO DE ORACLE PLS-00801 |
Autor: | Reinaldo Figueroa |
A ejecutar este INSERT desde SQL*Plus se ejecuta sin problemas, pero al tratar de crearlo como un STORED PROCEDURE me genera el error: PLS-00801: internal error [74807]
La instruccion es:create or replace PROCEDURE SP_INDOTEL1 AS begin begin delete co_indotel1; commit; end; begin insert into co_indotel1 select provincia, sum(porciento) porciento, caso, sum(recibidas) recibidas, round(sum(solu)/sum(recibidas)*100,2) solucionadas from (select total, caso, provincia, estatus, recibidas, round(recibidas/total*100,2) porciento,solu from (select count(*) TOTAL from sw_case s,co_tipo_caso c,city ci,state sta, territorial_unit tu,street str, address_range ad,area_id ar, sw_sp_account swsp where s.cotipocasoid=c.cotipocasoid and s.SWSPACCOUNTID=swsp.swspaccountid and ar.name=swsp.cozipcode and ci.state_oid=sta.oid and tu.city_oid=ci.oid and str.tu_oid=tu.oid |
Respuesta: | JATMES MEN |
BUSCA UN ERROR ASI
REG_FECHA.Fech2 => FEHAFIN Y LO MODIFICAS ASI REG_FECHA.Fech2 >= FEHAFIN |
Respuesta: | Reinaldo Figueroa |
Lo que sucedia es que, habia un nombre de identificador duplicado. Uno de los alias de los subqueries internos era igual al nombre de un objeto ya existente y por eso no podia crearlo en el diccionario de datos. No es un "bug", por eso es que desde SQL*Plus se ejecutaba sin problemas. La solucion fue cambiar los identificadores de los subqueries y el problema quedo resuelto.
Gracias, de todos modos. |
Respuesta: | Favio fernandez |
man... el error que te tira el un bug de oracle... bajate de la pagina de oracle el fix de ese error o bajate la ultima version de patch para la version de base que tengas vos ya que de ahi es el error...
tenes que fijarte que sea de base y no de SQL el patch porque el stored procedure es un procedimiento de base mientras que el insert comun es un procedimiento de sql... es decir... te lo resuelve en sql pero no lo podes resolver desde la base porque es ahi donde tenes el error |