wolfnash 2013-07-04 08:09 采纳率: 0%
浏览 962

谁能帮忙吧下面的sqlserver存储过程改成oracle版的

谁能帮忙吧下面的sqlserver存储过程改成oracle版的
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[PagingQuery]
@sql NVARCHAR(4000),
@currentpage int,
@pagesize int,
@count int=0 output
AS SET NOCOUNT ON

DECLARE @ptr
INT EXEC sp_cursoropen @ptr output, @sql, @scrollopt=1, @ccopt=1, @rowcount=@count output
SET @currentpage=(@currentpage - 1) * @pagesize + 1;
EXEC sp_cursorfetch @ptr, 16, @currentpage, @pagesize
EXEC sp_cursorclose @ptr
SET NOCOUNT OFF
GO

  • 写回答

1条回答

  • ChatGPTᴼᴾᴱᴺᴬᴵ 2023-01-01 20:51
    关注

    下面是 Oracle 中实现分页查询的存储过程:

    CREATE OR REPLACE PROCEDURE PagingQuery(
      p_sql IN VARCHAR2,
      p_current_page IN INTEGER,
      p_page_size IN INTEGER,
      p_count OUT INTEGER
    )
    AS
      v_offset INTEGER;
      v_limit INTEGER;
      v_query VARCHAR2(4000);
    BEGIN
      v_offset := (p_current_page - 1) * p_page_size + 1;
      v_limit := p_page_size;
      v_query := 'SELECT * FROM (' || p_sql || ') WHERE ROWNUM BETWEEN ' || v_offset || ' AND ' || (v_offset + v_limit - 1);
      EXECUTE IMMEDIATE v_query INTO p_count;
    END;
    
    评论

报告相同问题?

悬赏问题

  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误