oracle写了个简单的分页,一直报右括号缺失

junjunhuhuxiang 2012-05-15 07:31:42
存储过程-------
create or replace procedure proc8(v_in_table in varchar,v_in_pagesize in number,v_in_pagenow in number,v_out_result out pack2.my_cursor) is
2 v_begin number(10);
3 v_end number(10);
4 v_sql varchar2(3000);
5 begin
6 v_begin:=v_in_pagesize*(v_in_pagenow-1)+1;
7 v_end:=v_in_pagesize*v_in_pagenow;
8 v_sql:='select name into v_name from (select a1.*,rownum rn from (select * from '||v_in_table||') a1 where rownum<='||v_end||' where rn>'||v_begin;
9 open v_out_result for v_sql;
10 end;
11 /

java程序--------
Class.forName("oracle.jdbc.driver.OracleDriver");

ct=DriverManager.getConnection("jdbc:oracle:thin:@10.1.12.184:1521:orcl","system","manager");
cs=ct.prepareCall("{call proc8(?,?,?,?)}");
cs.setString(1, "student");
cs.setInt(2,2);
cs.setInt(3,1);
cs.registerOutParameter(4,oracle.jdbc.OracleTypes.CURSOR);
cs.execute();
rs=(ResultSet)cs.getObject(4);
while(rs.next()){
System.out.println("name="+rs.getString("name")+" no="+rs.getInt("no"));
}

错误------
java.sql.SQLException: ORA-00907: 缺失右括号
ORA-06512: 在 "SYSTEM.PROC8", line 9
ORA-06512: 在 line 1
...全文
240 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
sql语句最好都分清楚 每个对应的括号放到一组 层次理清 报错也好清楚错在哪
wang4016 2012-05-15
  • 打赏
  • 举报
回复
你那在 v_sql:='select name into v_name from (select a1.*,rownum rn from (select * from '||v_in_table||') a1 where rownum<='||v_end||' where rn>'||v_begin);
缺个括号啊。自己没有看出来吗
forgetsam 2012-05-15
  • 打赏
  • 举报
回复
1 本来就缺右括号。两个左一个右看不出来?

2 into是错的。
槑党--一缕风 2012-05-15
  • 打赏
  • 举报
回复
写完后,最好是格式话一下,美观,看起来清楚

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧