0 0

这个存储过过程哪里有错啊3

DELIMITER $$

DROP PROCEDURE IF EXISTS `restrant`.`pro_pagination` $$
CREATE PROCEDURE `restrant`.`pro_pagination` (table_name varchar(20),
primary_key varchar(20),
curr_page int,
per_page int)
BEGIN

declare temp varchar(20);
set temp=convert(varchar(10),(curr_page-1)*per_page)
exec(`select top `+per_page+` * from `+table_name+
` where `+primary_key+` not in(select top `+temp+` `+primary_key+
` from `+table_name+` order by `+primary_key+`)`)

exec pro_pagination `foodInfo`,`foodID`,2,5;


END $$

DELIMITER ;
抱的错误是这样的:
Script line: 4 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'varchar(10),(curr_page-1)*per_page)
exec(`select top `+per_page+` * from `+tabl' at line 8
2010年2月19日 14:55

2个答案 按时间排序 按投票排序

0 0

create procedure pro_pagination(table_name varchar(20), primary_key varchar(20), curr_page int, per_page int) begin set @tmpSql=concat('select * from ', table_name,' order by ',primary_key,' limit ', (curr_page-1)*per_page,',',per_page);  prepare stmt from @tmpSql; execute stmt; deallocate prepare stmt;  end

2010年2月22日 16:29
0 0

top应该只在sql中有效。

create procedure pro_pagination(table_name varchar(20), primary_key varchar(20), curr_page int, per_page int) begin set @tmpSql=concat('select * from ', table_name,' order by ',primary_key,' limit ', (curr_page-1)*per_page,',',per_page);  select @tmpSql; prepare stmt from @tmpSql; execute stmt; deallocate prepare stmt;  end

2010年2月22日 16:28

相关推荐

    DB2数据库创建存储过程时遇到的错误

    在Unix平台下的DB2存储过程对于实例用户和受防护用户之间的关系有一个约束,即DB2实例用户必须同时是受防护用户的主组中的一个用户。如果实例用户未加入到受防护用户的主组中,将会引发存取权限不够的问题。 为了...

    存储过过程介绍,简单的存储过程

    根据给定的信息,本文将详细介绍存储过程的基本概念及其在数据库管理中的应用,...在这个示例中,我们通过存储过程实现了两个表的连接,并计算了每个产品的销售总额,同时通过错误处理机制确保了过程的健壮性和可靠性。

    oracle存储过程编译错误问题

    9. **嵌套深度限制**:PL/SQL有嵌套级别的限制,如果存储过程内部的子程序过于复杂,可能会超过这个限制。简化代码结构,减少嵌套层次。 10. **网络配置问题**:虽然题目中提到了"Oracle Net Manager",但未提供...

    MySQL存储过程的异常处理方法

    这个存储过程接受四个输入参数(姓名、姓氏、城市和描述),以及两个输出参数(SQL错误代码和状态消息)。 接着,我们声明了三个条件(Conditions),它们是用于关联特定错误代码的异常处理标记。例如,`duplicate_...

    oracle 事务 回滚 存储过程

    本文将深入探讨“Oracle事务回滚存储过程”这一主题,旨在理解其核心概念、工作原理以及实际应用。 ### Oracle事务 在数据库操作中,事务是一系列操作的集合,这些操作要么全部成功,要么全部失败。事务具有ACID...

    数据库的存储过程

    数据库的存储过程是数据库管理系统提供的一种预编译的SQL语句集合,它是数据库中的一个对象,可以被多次调用,从而提高数据访问的效率。在本文中,我们将深入探讨存储过程的基本理念、语法以及常见的实现方式,特别...

    oracle的一个简单存储过程实例

    在这个“Oracle的一个简单存储过程实例”中,我们可以看到如何在Oracle环境中创建、调用和管理存储过程。下面将详细讲解这个主题。 首先,`c.sql`、`b.sql`和`student.sql`可能是包含存储过程定义的脚本文件。这些...

    mysql存储过程教程

    MySQL存储过程是数据库管理系统中的一种重要功能,它允许开发者预编译一系列SQL语句并封装成一个可重复使用的单元,从而提高数据处理的效率和代码的复用性。本教程将深入探讨MySQL存储过程的创建、调用以及相关概念...

    SqlServer存储过程及调试指南

    1. 存储过程概念:存储过程是一组为完成特定功能的SQL语句集,这些语句经过编译后存储在数据库中,供用户通过指定存储过程名和参数(如有)来执行。存储过程被称作数据库中的重要对象,对于设计良好的数据库应用程序...

    SAP HANA 中调试存储过程

    其中,对于存储过程的调试是开发者日常开发工作中的一个重要环节,SAP HANA为存储过程提供了内置的调试功能,这使得开发者能够方便地验证逻辑的正确性,追踪代码执行流程,检查变量值变化,从而对程序中的错误进行...

    PostgreSQL 存储过程调试

    使用`BEGIN...EXCEPTION`块来捕获和处理存储过程中的错误,这在调试时非常有用,因为它可以帮助定位错误发生的具体位置。 8. **性能优化** 调试不仅是为了修复错误,还可以寻找性能改进的机会。通过检查查询计划...

    解决SQL下数据库修改删除用户未能找到存储过程问题

    当出现“未能找到存储过程'Ws_UserPro_LoginCheck'”这类错误时,一般有以下几个可能的原因: 1. **存储过程未被正确复制或导入**:在从一个数据库复制到另一个数据库的过程中,如果存储过程没有被正确地复制或导入...

    vs中断点测试sqlserver的存储过程

    在IT领域,特别是软件开发与数据库管理中,对SQL Server的存储过程进行中断点测试是一项重要的技能,它有助于开发者深入理解代码执行流程,及时发现并修复潜在错误。下面,我们将详细探讨如何在Visual Studio(以下...

    存储过程参数查看器存储过程助手

    - 这个文件很可能是一个应用程序或插件,用于提供对存储过程参数的查看和辅助功能。安装并使用这个工具,用户将能够更深入地理解和管理他们的数据库存储过程。 总之,存储过程参数查看器和存储过程助手是数据库...

    [MySQL] 存储过程错误异常处理例子

    在这个例子中,如果`INSERT`语句失败并触发了`SQLEXCEPTION`,存储过程将不会立即停止,而是设置`exit_flag`为`TRUE`。然后在后续的`IF`语句中检查这个标志,如果为`TRUE`,则执行错误处理(回滚事务并抛出自定义...

    Oracle定时执行存储过程

    这个过程有三个参数:job、broken 和 next_date。其中,job 参数是工作号,它在问题中唯一标识工作。broken 参数指示此工作是否将标记为破——TRUE 说明此工作将标记为破,而 FALSE 说明此工作将标记为未破。next_...

    银行转帐存储过程

    在这个场景中,我们关注的是一个名为"银行转账存储过程"的特定应用,它是针对银行转账业务逻辑的实现。这个存储过程主要用于模拟银行账户之间的转账操作,并包含了登录验证、转账处理以及事务管理等关键功能。 首先...

    SQL Server存储过程对比工具

    SQL Server存储过程对比工具是一种高效且实用的软件解决方案,它专为数据库管理员和开发人员设计,用于比较和分析两个SQL Server数据库中的存储过程。这款工具的主要功能是帮助用户快速识别和定位不同数据库间存储...

    pl sql developer调试存储过程及调试包中创建的存储过程

    调试存储过程可以帮助开发者快速地定位和解决存储过程中的错误,提高开发效率和代码质量。 在 PL/SQL Developer 中调试存储过程需要按照以下步骤进行: 1. 在 body 里设置断点:在要设置断点的行开始点击鼠标左键...

    创建一个存储过程,以员工号为参数,返回该员工的工作年限(以参数形式返回) 存储过程.doc

    这个存储过程接受一个员工号作为参数,然后返回该员工的工作年限。存储过程首先检查员工号是否存在,如果不存在,则返回错误信息;否则,计算员工的工作年限并返回结果。 存储过程的调用 要调用存储过程,我们需要...

Global site tag (gtag.js) - Google Analytics