{{1}}
我刚刚在sql中创建了序列。我想创建pl / sql匿名块程序单元,显示序列MYSEQ的curval和nextval。有人知道怎么把它放在pl / sql中吗?
答案 0 :(得分:3)
一个简单的查询就可以了:
SELECT MYSEQ_sequence.currval, MYSEQ_sequence.nextval
FROM DUAL
你甚至不需要PL / SQL块。
答案 1 :(得分:2)
嗨,您可以使用以下程序,
CREATE OR REPLACE PROCEDURE procedure_name (sequence_name varchar2)
AS
V_NEXTVAL integer;
V_SELECT varchar2(100);
BEGIN
V_SELECT := 'SELECT'||sequence_name||'.NEXTVAL FROM DUAL';
EXECUTE IMMMEDIATE V_SELECT INTO V_NEXTVAL;
DBMS_OUTPUT.PUTLINE('Nextval is: '||TO_CHAR(V_NEXTVAL));
END;
答案 2 :(得分:2)
CREATE SEQUENCE MYSEQ_sequence
MINVALUE 100
START WITH 100
INCREMENT BY 5;
SELECT MYSEQ_sequence.currval AS seq
FROM DUAL
答案 3 :(得分:1)
您好我测试了这个并且它有效:
DECLARE
V_CUR VARCHAR2 (32);
V_NEXT VARCHAR2 (32);
BEGIN
SELECT MYSEQ_SEQUENCE.CURRVAL
INTO V_CUR
FROM DUAL;
SELECT MYSEQ_SEQUENCE.NEXTVAL
INTO V_NEXT
FROM DUAL;
DBMS_OUTPUT.PUT_LINE (V_CUR);
DBMS_OUTPUT.PUT_LINE (V_NEXT);
END;
重要: - 你必须得到这个序列的第一个值一次。 - 如果您在一次尝试中同时获得两个值,那么您将获得一个数字
答案 4 :(得分:1)
DECLARE
curr NUMBER;
nxt NUMBER;
BEGIN
SELECT MYSEQ_sequence.currval, MYSEQ_sequence.nextval
INTO curr, nxt
FROM DUAL;
DBMS_OUTPUT.PUT_LINE ('Current value: ' || curr || ' ' || 'Next value: ' || nxt);
END;