【问题标题】:Calling MySql Stored Procedure调用 MySql 存储过程
【发布时间】:2019-04-04 11:15:22
【问题描述】:

我的数据库 (mySql) 中有一个存储过程。但是当我使用'CALL'调用它时,它会显示一个错误。参数的数量是正确的。

我已经给出了论据并尝试了。

这是我的sp;

DROP PROCEDURE IF EXISTS `test`.`usp_select_data` $$
CREATE DEFINER=`dm`@`` PROCEDURE `usp_select_data`(
tagids varchar(2000)
,tagCount int
,_searchType int
,_firstName varchar(200)
,_lastName varchar(200)
,_postcode varchar(200)
,_email varchar(200)
,_companyId TEXT
,_town varchar(200)
,_country varchar(200)
,_sourceId int
,_biztypeId int
,_startDate datetime
,_lastcontactedinMonth datetime
,_lastcontactedinthreeMonth datetime
,_lastcontactedinsixMonth datetime
,_lastcontactedinoneYear datetime
,_lastcontactedlessthanonemonth datetime)

我在 mysql 中调用为;

CALL usp_select_data('',0,0,'','','','','','','',0,0,'2019-04-04 00:00:00','','','','','');

我希望得到我在 SP 中解释过的查询结果。 但是错误得到'您的 SQL 语法有错误;查看与您的 MySQL 服务器版本相对应的手册,了解在第 1 行的 ')' 附近使用的正确语法

【问题讨论】:

  • 您的程序是否构建了任何准备好的语句?

标签: mysql stored-procedures sp


【解决方案1】:

您将空字符串传递给日期时间参数。如果您不打算传递值,请改用 NULL。

【讨论】:

  • CALL 语法可以。在过程调用中使用空字符串作为日期时间应该完全阻止过程运行,所以看起来问题中没有显示导致错误的内容。
猜你喜欢
  • 2012-06-15
  • 1970-01-01
  • 2017-04-23
  • 2016-05-03
  • 2013-05-18
  • 1970-01-01
  • 2011-05-05
  • 2016-10-19
相关资源
最近更新 更多