【问题标题】:Question Regarding Oracle Sequence关于Oracle序列的问题
【发布时间】:2011-11-21 08:05:09
【问题描述】:

我们已经在数据库中有一个序列,现在我必须修改该序列,以便从我将从数据库中获取的特定值开始。我写了以下代码

DECLARE
  i_Seq   INTEGER;
BEGIN
  SELECT MAX (col_id) + 1 INTO i_Seq from Table;

  EXECUTE IMMEDIATE 'CREATE SEQUENCE SEQHDR MINVALUE '|i_Seq|' MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH '|i_Seq|' CACHE 20 NOORDER NOCYCLE'
END;
/

我有以下问题。

  1. 我必须先删除旧序列还是 oracle 会自己完成?
  2. 序列创建中的start with 子句。我用对了吗?或者我可以用任何数字替换它?

【问题讨论】:

标签: oracle plsql oracle11g sequence


【解决方案1】:

是的,如果序列已经存在,您需要删除它。没有 CREATE OR REPLACE SEQUENCE 选项。

是的,您正确地使用了 START WITH 子句。由于序列被声明为 NOCYCLE,因此无需指定 MINVALUE。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-31
    • 2011-01-12
    • 1970-01-01
    • 1970-01-01
    • 2016-10-06
    • 1970-01-01
    • 2023-03-31
    • 2020-04-18
    相关资源
    最近更新 更多