偶只知道是要把sequence先得到,再放到insert的参数里面去,我理解是insert不能引用像.nextval这样动态的值,函数啥的还是可以的。 select news_seq.nextval into v_nid from dual;INSERT INTO news (nid, ntid,ntitle,nauthor) VALUES(_nid ,1,'aa','aaa');
把你那个news_seq.nextval 换成具体的数字,看看报错不 这问题 试一试就试出来
龟腚就是不要问为什么! INSERT INTO news (nid, ntid,ntitle,nauthor) select news_seq.nextval ,1,'aa','aaa' from dual
换成具体的数字报同样的错 select news_seq.nextval from news 存在结果,这是怎么回事?
select news_seq.nextval into v_nid from dual;INSERT INTO news (nid, ntid,ntitle,nauthor) VALUES(_nid ,1,'aa','aaa');
INSERT INTO news (nid, ntid,ntitle,nauthor) select news_seq.nextval ,1,'aa','aaa' from dual
select news_seq.nextval from news 存在结果,这是怎么回事?
我要实现新闻添加的功能
代码如下 public boolean addNews(News new1) throws Exception{
DbUtil dbutil=new DbUtil();
Connection con=dbutil.getcon();
PreparedStatement pst = null;
ResultSet rs = null;
int ntid=new1.getNtid();
String ntitle=new1.getNtitle();
String nauthor=new1.getNauthor();
pst=con.prepareStatement( "INSERT INTO news (nid, ntid,ntitle,nauthor) VALUES(news_seq.nextval,?,?,?)");
pst.setInt(1, ntid);
pst.setString(2, ntitle);
pst.setString(3, nauthor);
rs=pst.executeQuery();
if(rs!=null){
return true;
}
else{
return false;
}