我的目标:我想创建一个程序,其中的最小值 sequence将从表中的max value主键列开始。所以 我可以使用此序列填充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 :(得分:0)
尝试将ALTER SEQUENCE命令放在'execute immediate'中。