例如:有 3 个序列 ( seq1, seq2, seq3
),我想进行一个查询,显示它们的名称和当前值?
基本语法是
select schema.seq_name.currval from dual
但是如何展示它们的价值呢?
您可以使用user_sequences
数据字典视图,例如
SELECT s.sequence_name, s.last_number AS curr_value
FROM user_sequences s
WHERE s.sequence_name IN ('SEQ1','SEQ2','SEQ3')
只要这些序列在您当前的模式中。否则,这可能会被替换all_sequences
或dba_sequences
取决于情况或您的需要。
尽管我对你为什么需要这样做深有保留,但我还是尝试将一个 pl/sql 过程作为演示 - 部分只是为了挑战自己。当我遇到一个我认为很简单的问题时,只需要一双新的眼睛,我就在 OTN 上发帖。当他们解决我的编码问题时,一个回复总结了您的问题:
如果不调用 nextval,您将无法选择 currval。currval 是通过会话中的 nextval 函数返回上次使用的序列值的函数。