【发布时间】: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