create sequence MYSEQ_sequence
start with 100
increment by 5;
これで、SQLでシーケンスを作成しました。私は、シーケンスMYSEQのcurvalとnextvalを示すpl/sqlの無名ブロックプログラムユニットを作成したいと思います。誰もがそれをPL/SQLに入れる方法を知っていますか?pl/sqlのシーケンス
単純なクエリを行いますcreate sequence MYSEQ_sequence
start with 100
increment by 5;
これで、SQLでシーケンスを作成しました。私は、シーケンスMYSEQのcurvalとnextvalを示すpl/sqlの無名ブロックプログラムユニットを作成したいと思います。誰もがそれをPL/SQLに入れる方法を知っていますか?pl/sqlのシーケンス
単純なクエリを行います:
SELECT MYSEQ_sequence.currval, MYSEQ_sequence.nextval
FROM DUAL
あなたも、このためのPL/SQLブロックを必要としません。
こんにちは、
あなたが手順の下に使用することができ、
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;
それは動作しませんが、ありがとうございます。 –
あなたの試みはどうですか?コードを投稿できますか? –
私はpl/sqlをまだ習得していませんでしたが、それを事前に学習しようとしました。 –
CREATE SEQUENCE MYSEQ_sequence
MINVALUE 100
START WITH 100
INCREMENT BY 5;
SELECT MYSEQ_sequence.currval AS seq
FROM DUAL
こんにちは私はこの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;
重要: - あなたが最初に取得する必要がありますこのシーケンスの値は1回です。 あなたは、単一の試みで両方の値を取得する-if、あなたは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;
は申し訳ありませんが、それは、PL/SQLプロシージャが正常に完了したことを表示する必要があります取得します。現在の値:100、次の値:テキストとして105。 –
4行目のエラー: ORA-02287:ここではシーケンス番号は許可されていませんが、どうもありがとうございます。 –