sql语句是这样的sql="select*fromcom_addresswhereusername=?";以前不加条件存储过程是这样CREATEORREPLACEPROCEDUREsplit_page(v_tableNameINVARCHAR2,v_pageSizeINNUMBER,v_current...
sql 语句是这样的 sql="select * from com_address where username=?";
以前不加条件存储过程是这样CREATE OR REPLACE PROCEDURE split_page
(
v_tableName IN VARCHAR2,
v_pageSize IN NUMBER,
v_currentPage IN NUMBER,
v_totalRows OUT NUMBER,
v_totalPage OUT NUMBER,
v_cursor OUT mypackage.mycursor
)
IS
v_begin NUMBER;
v_end NUMBER;
v_sql VARCHAR2(500);
BEGIN
v_begin:=(v_currentPage-1)*v_pageSize+1;
v_end:=v_pageSize*v_currentPage;
v_sql:='SELECT t2.* FROM (SELECT rownum rn,t1.* FROM (SELECT * FROM '||v_tableName||' ORDER BY empno) t1 WHERE rownum<='||v_end||') t2 WHERE t2.rn>='||v_begin;
OPEN v_cursor FOR v_sql;
v_sql:='SELECT COUNT(*) FROM '||v_tableName;
EXECUTE IMMEDIATE v_sql INTO v_totalRows;
IF(MOD(v_totalRows,v_pageSize)=0) THEN
v_totalPage:=v_totalRows/v_pageSize;
ELSE
v_totalPage:=v_totalRows/v_pageSize+1;
END IF;
END;
/
加入了where 条件后 ,存储过程怎么改,还有条件的传值?
展开