JDBC错误:java.sql.SQLException:ORA-08002:此会话中尚未定义序列

时间:2017-11-19 07:55:07

标签: java oracle jdbc

以下是我创建的序列:

CREATE SEQUENCE  SEQ_SURVEY INCREMENT BY 1 START WITH 1 NOCACHE  NOCYCLE ;

在我的JDBC代码中,我正在使用:

String currentValueFromSequence = "SELECT SEQ_SURVEY.CURRVAL FROM DUAL";
PreparedStatement getCurrValFromSeq = con.prepareStatement(currentValueFromSequence);

ResultSet getSurveyResponseID = getCurrValFromSeq.executeQuery();

它抛出错误声明:

java.sql.SQLException: ORA-08002: sequence SEQ_SURVEY.CURRVAL is not yet defined in this session

我无法理解为什么这段代码没有在我的QA环境中运行,而这段代码在我的开发环境中运行得非常好。

任何专家都能提出他们的建议吗?

1 个答案:

答案 0 :(得分:1)

您需要先拨打NEXVAL。这就是你得到错误的原因。

SELECT SEQ_SURVEY.NEXTVAL FROM DUAL

Oracle NEXTVAL函数用于检索序列中的下一个值。在调用CURRVAL函数之前调用Oracle NEXTVAL函数 ,否则将引发错误。 Oracle CURRVAL函数用于访问指定序列的当前值。请注意,CURRVAL只能在当前用户会话中引用NEXTVAL至少一次时使用。