MySQL过程不产生输出

Posted

技术标签:

【中文标题】MySQL过程不产生输出【英文标题】:MySQL procedure not producing output 【发布时间】:2017-09-12 13:44:07 【问题描述】:

我是一个 SQL 新手。尝试编写一个简单的 SQL 过程,我可以在其中传递订单 ID(作为 INT)并退出其相应的订单状态。 以下是详细信息:

表结构:

TransactionID int(11) 否 BUYEREMAIL 文本 NO BUYERNAME varchar(255) 否 BUYERPHONENUMBER 文字编号 购买日期编号 PAYMENTSDATE 日期 是 METHODOFPAYMENT varchar(50) 是 SHIPPINGPRICE int(10) 是 SHIPPINGTAX int(10) 是 SHIPSERVICELEVEL varchar(100) 是 SHIPADDRESS1 varchar(255) 否 SHIPADDRESS2 varchar(255) 是 SHIPCITY 正文 NO SHIPSTATE 文本是 SHIPPOSTALCODE text NO 船国文本 NO SHIPPHONENUMBER 文本是 OrderProcessed 位(1) 是 订单状态文本否

程序

 DROP PROCEDURE `OrderStatus`;
 CREATE DEFINER=`profetah`@`localhost` PROCEDURE `OrderStatus`(IN` 
 OrderID` INT, OUT `output1` TEXT) NOT DETERMINISTIC CONTAINS SQL SQL 
 SECURITY DEFINER BEGIN
 SELECT OrderStatus INTO output1
 FROM `ProfetaOrders`
 WHERE TransactionID=OrderID;
 END

错误

数据错误 ER_PARSE_ERROR:您的 SQL 语法有错误;检查与您的 mysql 服务器版本相对应的手册,以在第 1 行的“select @output1 as output1”附近使用正确的语法

请帮忙。 问候。

【问题讨论】:

您的查询不包含任何会创建抱怨select @output1 as output1 的错误消息的部分。所以请添加实际的错误消息或实际代码。 @Solarflare 这实际上是我得到的确切错误。我唯一没有提到认为这很重要的是我从 API 连接站点 integromat.com 调用此过程 您的代码不包含对@output1 的任何引用,而您的错误消息包含。所以你错过了一些东西。也许它是调用该过程的代码的一部分,所以添加它。目前,我们无法告诉您为什么会收到该错误,因为我们没有看到导致该错误的代码。 @Solarflare 感谢您的回复。我不知道 integromat 是如何调用这个程序的。我已经向他们提交了请求。让我们看看他们的回复。谢谢。 【参考方案1】:

问题不在代码中。它实际上来自 integromate.com 当与他们联系时,他们从那里解决了这个错误。

问候。

【讨论】:

以上是关于MySQL过程不产生输出的主要内容,如果未能解决你的问题,请参考以下文章

MySQL探测mysqldump详细过程

MySQL存储过程入门

to_char 根据调用过程的位置产生不同的输出

在MySQL中如何创建一个带输出参数为一个表类型的存储过程

mysql 存储过程出现死锁

mysql存储过程输入一个输出一个值怎么办