Java Oracle:此会话中尚未定义SEQ_BOARD.CURRVAL序列

Java Oracle:此会话中尚未定义SEQ_BOARD.CURRVAL序列,java,oracle,Java,Oracle,我在使用java和oracle进行开发时遇到了一个错误,但我已经好几个小时没能解决它了。 这是一个查询代码 <insert id="insert"> insert into board (bno,title,content,writer) values ( seq_board.nextval, #{title}, #{content}, #{writer} ) </insert> <insert id="addAttach">

我在使用java和oracle进行开发时遇到了一个错误,但我已经好几个小时没能解决它了。 这是一个查询代码

<insert id="insert">

    insert into board (bno,title,content,writer) values

    ( seq_board.nextval, #{title}, #{content}, #{writer} )

</insert>

<insert id="addAttach">

    insert into attach (fullName, bno) values 

    ( #{fullName}, seq_board.currval )

</insert>
在board表中,数据存储良好。如果我在写一个文件时将一个文件附在电路板上,则会出现一个500错误页面


如果单击Backspace,我会看到电路板,并且文件未上载。

中讨论了原因

谢谢克罗科蒂尔科

从xml文本的部分配置来看,您似乎正在使用mybatis或类似框架


我建议insert id=insert应该返回生成的seq.nextval,然后得到它,将值传递给insert id=addAttach,而不是使用seq.currval作为解决方法。

听起来这两个语句只是在不同的会话中运行。声明明确指出,在会话中使用currval作为序列之前,您必须首先使用NEXTVAL初始化序列。只需先调用NEXTVAL,然后就可以在会话中调用CURRVAL。我不确定您还想得到什么其他答案?选择*from v$session,其中username='username';从状态为“活动”的v$会话中选择*;当我运行两个查询时,它是否与没有看到会话有关?当我查询所有会话时,我有一个用户名为的会话,当我执行上述两个查询时,没有检索到任何内容。请注意,insert和ADDATCH是同时运行的,因此,如果文件未附加,则只会执行插入操作。从v$session中选择*,其中username='username';从状态为“活动”的v$会话中选择*;这与我运行两个查询时没有看到会话有关吗?当我查询所有会话时,我有一个使用用户名的会话,当我执行上述两个查询时,没有检索到任何内容。请注意,insert和ADDATTATCH是同时运行的,因此如果文件未附加,则只会执行插入操作。在toad for oracle中,从dual中选择seq_board.nextval;从dual中选择seq_board.currval;按照这种顺序,它可以正常工作,但网页上会出现500个错误。描述了细节。您可以搜索如何在mybatis中返回下一个值。