Tengo el siguiente evento pequeño que no se compila:¿Cómo puedo solucionar este error "Declaración SQL ignorada"?
function f_query_01 Return interval Day to second is
start_time timestamp(3);
end_time timestamp(3);
time_diff interval Day to second;
c_query_number number;
begin
start_time := systimestamp;
select count(*) into c_query_number from wg; <--This is the line that errors out
end_time := systimestamp;
time_diff := start_time - end_time;
return time_diff;
end f_query_01;
El compilador me da los siguientes errores:
Error(29,3): PL/SQL: SQL Statement ignored
Error(29,44): PL/SQL: ORA-04044: procedure, function, package, or type is not allowed here
Qué está causando este error y cómo puedo solucionarlo?
¿'select count (*) en c_query_number from wg;' funciona fuera de la función, cuando se ejecuta en la misma base de datos/esquema que la función? –
Interesante. Probó este código, sustituyendo wg por otra tabla pequeña. Compilado y ejecutado con éxito. ¿Estás seguro de que este es exactamente el código que tuvo un problema? –
El problema era que la tabla wg no existía. Una vez que cambié el nombre de la tabla al nombre correcto, todo estaba bien. Realmente creo que el mensaje de error fue bastante engañoso en este caso, lo que sucede, pero sigue siendo frustrante. – twamn