【问题标题】:MySQL procedure not producing outputMySQL过程不产生输出
【发布时间】: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 是如何调用这个程序的。我已经向他们提交了请求。让我们看看他们的回复。谢谢。

标签: mysql


【解决方案1】:

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

问候。

【讨论】:

    猜你喜欢
    • 2016-06-03
    • 2019-04-20
    • 2012-01-07
    • 2017-10-05
    • 1970-01-01
    • 1970-01-01
    • 2014-11-03
    • 2021-12-16
    • 1970-01-01
    相关资源
    最近更新 更多