0

すでに質問されているかもしれませんが、解決できなかったので再度投稿します。

変数からの開始値を使用してオラクル シーケンスを作成する必要があります。したがって、明らかに、pl/sql ブロッ​​ク内で同じものをすぐに実行する必要があります。

次の PL/SQL ブロックを使用してシーケンスを作成しました。

declare nl_seqmax NUMBER :=0; 
BEGIN 
  SELECT 1000000009 
      into nl_seqmax 
  from dual; 
  if nl_seqmax > 0 THEN 
      execute immediate 'CREATE SEQUENCE my_seq INCREMENT BY 1 START WITH '||nl_seqmax || ' MAXVALUE 4000000000 CACHE 20 ORDER'; 
  end if; 
end; 
/ 

PL/SQL procedure successfully completed.

しかし、後でこのシーケンスを参照すると、942 エラーがスローされることがわかります。

SQL> AUDIT GRANT ON my_seq  BY ACCESS WHENEVER SUCCESSFUL;

ERROR at line 1:
ORA-00942: table or view does not exist

これについて何か考えはありますか?シーケンスへのすべての参照も動的 sql を使用する必要がありますか?

4

0 に答える 0