我用存储过程分页
传的参数是SQL语句
当我的SQL语句中有in就报 ORA-03113: 通信通道的文件结束
不用in就没事

解决方案 »

  1.   

    编辑D:\oracle\ora92\network\admin\sqlnet.ora文件,将LNET.AUTHENTICATION_SERVICES= (MTC)或者SQLNET.AUTHENTICATION_SERVICES= (NTS)修改为NET.AUTHENTICATION_SERVICES= (NONE). 
      

  2.   

    --数据集由 3 个表组成, 0表为空;1表为: 总行数、总页数、当前页码; 2表为查询数据
    create Procedure p_splitpage   
    @sqlstr nvarchar(4000),    --要执行的sql语句
    @pagecount int,       --要显示的页码(第N页)
    @pagesize int         --每页的大小
    As
    set nocount on
    declare @P1 int,      --P1是游标的id
    @rowcount intexec sp_cursoropen @P1 output,@sqlstr,@scrollopt=1,@ccopt=1,@rowcount=@rowcount output
    select @rowcount as allRows,ceiling(1.0*@rowcount/@pagesize) as allPageCount,@pagecount as ageCount
    set @pagecount=(@pagecount-1)*@pagesize+1
    exec sp_cursorfetch @P1,16,@pagecount,@pagesize 
    exec sp_cursorclose @P1GO