我是用A用户去调用B用户的sequence,出现以上错误。 |
|
5分 |
不是已经告诉你序列不存在了吗?
|
但是我在pl/sql中是可以执行的,
我就是不明白,为什么在pl/sql中可以执行,而程序中不能执行。 |
|
5分 |
你把程序调用的代码和PL/SQL里调用的代码贴出看看
|
String seqSql=”select clspuser.sq_acc_info.nextval from dual”;
ps = conn.prepareStatement(seqSql, ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); rs=ps.executeQuery(); Object obj=null; while(rs.next()) { obj=rs.getObject(1); } if(obj!=null){ seq=obj.toString(); } PL/SQL执行没有问题。 |
|
5分 |
代码使用的数据库用户,权限不足引起的吧
|
代码使用的用户和我执行SQL的用户是一样的。
|
|
5分 |
如果不是权限的问题的话,从你贴出来的代码看没什么问题。可你还是没有将PL/SQL的部分代码贴出来。你确定clspuser.sq_acc_info这里的用户名clspuser和序列名sq_acc_info没写错?
|
是的,我检查了很多遍,就是没发现是什么问题,所以才求助的。
|
|
20分 |
为了避免不是因为搞错用户或权限之类的问题,建议代码中先直接用system用户或者B用户来测试看看。
然后再检查什么拼写错误之类的问题。 |
我也是啊,今天碰到了这个问题,pl里执行时ok的,但是放到代码里执行总是报序列不存在,郁闷死了
|
|
b.序列名 我的理解
|
|
我也遇到这个情况,给一个表的主键ID做自增长做了个序列,往表里面查数据都能够实现自增长,但是另外用SELECT查询序列当前值或者下一个值时就给我说序列不存在~~~
|