今天被开发人员告知在应用用户下无法查询自己创建的sequence的nextval值。当执行select * from test.nextval时提示“ERROR at line 1:ORA-02289: sequence does not exist”。于是我通过select sequence_name from user_sequences来判断该序列确实存在。于是我询问开发人员创建sequence的语句,结果发现开发人员调用的语句是create sequence "test";问题就出在那个双引号下。如果创建sequence的时候sequence name带了双引号,那么在user_sequences数据字典中并不会显示序列名为"test"而只会显示test,如果要正确调用序列的nextval值则需要使用select * from "test".nextval即可,当然最好是避免在创建序列时在序列名上附加双引号。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/20801486/viewspace-695651/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/20801486/viewspace-695651/
本文介绍了一位开发人员在尝试获取自己创建的Oracle序列的nextval值时遇到的问题及解决方案。开发人员最初无法从应用用户下查询到序列,经过排查发现是因为创建序列时误用了双引号导致的。文章详细解释了如何正确地创建和引用序列。

1848

被折叠的 条评论
为什么被折叠?



