首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于序列的nextval值创建视图

基于序列的nextval值创建视图
EN

Stack Overflow用户
提问于 2011-12-09 18:42:28
回答 1查看 7.3K关注 0票数 3

是否可以基于nextval序列创建视图?

我创建了一个这样的视图:

代码语言:javascript
复制
create view seq_agents_nextval 
as
select seq_agents.nextval from dual;

从Oracle文档中我读到它不是这样工作的。有没有其他技巧或技巧可以用来创建这样的输出视图?

EN

回答 1

Stack Overflow用户

发布于 2012-01-26 08:15:57

您最好的选择将是遵循以下代码精神的udf:

代码语言:javascript
复制
CREATE OR REPLACE FUNCTION my_nv RETURN INTEGER AS
    l_rv NUMBER;
BEGIN
   SELECT seq_agents.nextval
     INTO l_rv
     FROM DUAL
        ;
   RETURN l_rv;
END;

CREATE OR REPLACE VIEW seq_agents_nextval AS
      SELECT my_nv
        FROM DUAL
           ;

否则,您可能会查询系统视图以获得至少一个近似答案

代码语言:javascript
复制
CREATE OR REPLACE VIEW seq_agents_nextval AS
  SELECT last_number + increment_by nv
    FROM ALL_SEQUENCES
   WHERE sequence_owner = '<the_proper_schema_name>'
     AND sequence_name = 'SEQ_AGENTS'
       ;

但是这个值的用处是有限的,因为它可能比实际值大得多,与序列的缓存值乘以序列增量一样多,并且没有考虑最大值和进位行为(后两个方面是可以修复的)。

请记住,在查询视图和使用返回值之间,可能会发出任意数量的新序列值。

希望这能有所帮助&致敬

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8454582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档