ayuda porfi!!
a las buenas de dios
FUNCTION VALOR_SEQ
(p_seq_name IN varchar2)
RETURN number IS
v_cod number;
BEGIN
--siguiente valor actual
select p_seq_name.nextval into v_cod from dual;
RETURN v_cod;
EXCEPTION
WHEN others THEN
v_cod:=-1;
END;
quiero que dado cualquier secuencia me devuelva el valor nextval, pero me casca.
como lo puedo hacer?
FUNCTION VALOR_SEQ
(p_seq_name IN varchar2)
RETURN number IS
v_cod number;
BEGIN
--siguiente valor actual
select p_seq_name.nextval into v_cod from dual;
RETURN v_cod;
EXCEPTION
WHEN others THEN
v_cod:=-1;
END;
quiero que dado cualquier secuencia me devuelva el valor nextval, pero me casca.
como lo puedo hacer?
CREATE OR REPLACE FUNCTION VALOR_SEQ
(seq_name IN varchar2)
RETURN number IS
v_cod number;
BEGIN
--siguiente valor actual
select p_seq_name.nextval into v_cod from dual;
RETURN v_cod;
EXCEPTION
WHEN others THEN
v_cod:=-1;
END;
y creo la secuencia:
create sequence P_SEQ_NAME
minvalue 1
maxvalue 100000
start with 21
increment by 1
cache 20
order;
y me funciona
(seq_name IN varchar2)
RETURN number IS
v_cod number;
BEGIN
--siguiente valor actual
select p_seq_name.nextval into v_cod from dual;
RETURN v_cod;
EXCEPTION
WHEN others THEN
v_cod:=-1;
END;
y creo la secuencia:
create sequence P_SEQ_NAME
minvalue 1
maxvalue 100000
start with 21
increment by 1
cache 20
order;
y me funciona
CREATE OR REPLACE FUNCTION MI_FUNCION(SEQ VARCHAR2) RETURN NUMBER
IS
V NUMBER;
BEGIN
EXECUTE IMMEDIATE 'SELECT ' || SEQ || '.NEXTVAL FROM DUAL' INTO V;
RETURN V;
END;
/
Saludos
IS
V NUMBER;
BEGIN
EXECUTE IMMEDIATE 'SELECT ' || SEQ || '.NEXTVAL FROM DUAL' INTO V;
RETURN V;
END;
/
Saludos
