
Problema con procedure
Publicado por Jhon (11 intervenciones) el 19/11/2015 03:04:09
Cordial saludo gente.
Estoy novato en bases de datos y estoy realizando unos ejercicios en Oracle pero lo que me ocurre para mí entra en lo paranormal
He creado con la aplicación web de Oracle, un procedimiento almacenado que he llamado ins_articulo y sirve para insertar registros en la tabla artículo.
Si le digo al programa que me muestre mi procedure me muestra esto:
Pero si hago por ejemplo:
Me dirá
Ahora bien, si yo abro la terminal de Oracle y hago el mismo execute, tal cual, me da por bueno el proceso:
La tabla articulo originalmente tenía cuatro artículos. Tiene un Id autoincrementable. Como yo ya he hecho varias veces el execute, este último que hice ha recibido el ID número 9. Si hago un select *from de la tabla puedo ver los datos que inserté ahora. Sólamente los cuatro originales y el último que añadí.
SI hago un count(*) me dirá que hay cinco valores, pero observen que el autoincremental ya va en 9.
SI cierro la terminal y vuelvo a abrirla y hago nuevamente un select *from tendré otra vez los cuatro originales y el count(*) me dirá que hay cuatro elementos.
No tengo ni idea de qué está pasando.
¿Alguna sugerencia? Les agradezco mucho cualquier ayuda.
Estoy novato en bases de datos y estoy realizando unos ejercicios en Oracle pero lo que me ocurre para mí entra en lo paranormal

He creado con la aplicación web de Oracle, un procedimiento almacenado que he llamado ins_articulo y sirve para insertar registros en la tabla artículo.
Si le digo al programa que me muestre mi procedure me muestra esto:
1
2
3
4
5
6
7
8
9
10
create or replace procedure "INS_ARTICULO"
(titulo IN VARCHAR2,
autor IN VARCHAR2,
editor IN VARCHAR2,
precio IN NUMBER)
is
begin
insert into articulo(tit_art, aut_art, edi_art, prec_art)
values(titulo, autor, editor, precio);
end;
Pero si hago por ejemplo:
1
execute ins_articulo('La hojarasca', 'Gabriel García Márquez', 'Oveja negra', 12000);
Me dirá
1
ORA-00900: invalid SQL statement
Ahora bien, si yo abro la terminal de Oracle y hago el mismo execute, tal cual, me da por bueno el proceso:
1
PL/SQL procedure successfully completed.
La tabla articulo originalmente tenía cuatro artículos. Tiene un Id autoincrementable. Como yo ya he hecho varias veces el execute, este último que hice ha recibido el ID número 9. Si hago un select *from de la tabla puedo ver los datos que inserté ahora. Sólamente los cuatro originales y el último que añadí.
SI hago un count(*) me dirá que hay cinco valores, pero observen que el autoincremental ya va en 9.
SI cierro la terminal y vuelvo a abrirla y hago nuevamente un select *from tendré otra vez los cuatro originales y el count(*) me dirá que hay cuatro elementos.
No tengo ni idea de qué está pasando.
¿Alguna sugerencia? Les agradezco mucho cualquier ayuda.
Valora esta pregunta


0