2013-12-04 6 views
1

Моя цель: Я хочу создать процедуру, в которой минимальное значение последовательности будет начинаться с столбца первичного ключа максимального значения в таблице. Итак, , что я могу использовать эту последовательность для заполнения столбцов первичного ключа в картах ETL без каких-либо ошибок ограничения. Ниже приведен код, над которым я пытаюсь работать , но я продолжаю получать слишком много ошибок.восстановить минимальное значение последовательности оракула до максимального значения первичного ключа

CREATE OR REPLACE PROCEDURE SET_MDM_IPEDS_SEQ 
(P_NAME IN VARCHAR2,P_VAL IN OUT NUMBER) 
IS 
V_NUM NUMBER; 
BEGIN 
SELECT COALESCE(MAX(IPEDS_ORG_LND_KEY),0) INTO P_VAL FROM MDM_IPEDS_ORG_LND; 
SELECT MDM_IPEDS_SEQ.NEXTVAL FROM DUAL INTO V_NUM; 
ALTER SEQUENCE MDM_IPEDS_SEQ INCREMENT BY V_VAR; 
SELECT MDM_IPEDS_SEQ.NEXTVAL FROM DUAL INTO V_NUM; 
ALTER SEQUENCE MDM_IPEDS_SEQ INCREMENT BY 1; 
END; 
\ 

ответ

0

Попробуйте поместить команды ALTER SEQUENCE внутри «выполнить немедленное».

Смежные вопросы