oracle分页有关键字吗,oracle分页查询报错,FROM关键字未找到!求相助

博客内容涉及一个Oracle数据库分页查询过程中遇到的错误,错误提示为'FROM'关键字未找到。问题出在创建的PL/SQL过程里,SQL字符串拼接不正确,缺少了逗号。解决方案是修正SQL字符串的拼接,确保所有部分正确连接。Java代码展示了如何调用这个过程。修复后的过程能够正确执行分页查询。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

oracle分页查询报错,FROM关键字未找到!求帮助!

过程代码:

create or replace procedure fenye1(v_in_table in varchar2,v_in_pageSize in number,

v_in_pageNow in number,v_out_cursor out pack1.my_cursor) is

--定义变量

v_start number:=v_in_pageSize*(v_in_pageNow-1)+1;

v_end number:=v_in_pageSize*v_in_pageNow;

v_sql varchar2(2000):='select t2.* from ( select t1.* rownum rn from (select * from '||v_in_table||') t1 where rownum<='||v_end||') t2 where rn>='||v_start;

begin

open v_out_cursor for v_sql;

end;

java调用过程代码:

public class TestPro3 {

public static void main(String [] args) {

Connection ct= null;

CallableStatement cs =null;

ResultSet rs= null;

try {

Class.forName("oracle.jdbc.driver.OracleDriver");

ct = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl","scott","tiger");

cs = ct.prepareCall("{call fenye1(?,?,?,?)}");

cs.setString(1,"emp");

cs.setInt(2, 3);

cs.setInt(3, 1);

//给第二个问号,因为是输出值

cs.registerOutParameter(4, oracle.jdbc.OracleTypes.CURSOR);

cs.execute();

//取出输出的值

rs = (ResultSet) cs.getObject(4);

while(rs.next()) {

System.out.println(rs.getString(1));

System.out.println(rs.getString(2));

}

} catch (Exception e) {

e.printStackTrace();

}

}

}

------解决方案--------------------

'select t2.*

from ( select t1.* ,rownum rn from (select * from '

------解决方案--------------------

v_in_table

------解决方案--------------------

') t1 where rownum<='

------解决方案--------------------

v_end

------解决方案--------------------

') t2

where rn>='

------解决方案--------------------

v_start;

落了一个逗号

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值