Inicializar una secuencia desde un procedimiento almacenado

joaquin_gsm
14 de Mayo del 2003
¿Como podria inicializar una secuencia desde un Procedimiento almacenado?

Lo he intentado y me da errores al compilar:

CREATE OR REPLACE PROCEDURE INICIALIZA_SECUENCIA AS
BEGIN

DROP SEQUENCE SEC_OTS;

CREATE SEQUENCE SEC_OTS
INCREMENT BY 1
START WITH 1
MAXVALUE 999
MINVALUE 1
CYCLE
CACHE 20
ORDER;

END;

tbanos
14 de Mayo del 2003
Creo que no necesitas crear un procedimiento almacenado. Las secuencias son objetos de la base de datos,se crean y almacenan independientemente de las tablas, por lo que pueden utilizarse para varias tablas y por distintos usuarios, puedes llamarles desde procedimientos y funciones. Por lo que puedes crearla directamente en el SqlPlus, sin necesidad de utilizar un procedimiento alamcenado:
SQL> CREATE SEQUENCE SEC_OTS
INCREMENT BY 1
START WITH 1
MAXVALUE 999
MINVALUE 1
CYCLE
CACHE 20;

www
14 de Mayo del 2003
Hola.
A simple vista, el problema no es la compilación del SP ok!.

Deberías checar 1ro los privilegios o grantt que le has dado a la secuencia y al SP lo mismo.
Por otro lado la secuencia la debes crear antes de hacer la llamada al SP y en el SP realizas la operación que deseas ya sea, .nextval, etc. y jugar con ese nro.

espero te ayude eso.