【发布时间】:2020-10-21 14:22:00
【问题描述】:
DELIMITER $$
CREATE PROCEDURE prc_inv_amounts (W_IN IN NUMBER)
AS
W_CHK NUMBER = 0;
W_SUBT NUMBER = 0;
W_TAX NUMBER = 0;
BEGIN
SELECT COUNT(*) INTO W_CK FROM INVOICE WHERE INV_NUMBER = W_IN;
IF W_CK = 1 THEN
SELECT SUM(LINE_TOTAL) INTO W_SUBT FROM LINE
WHERE
LINE.INV_NUMBER = W_IN;
W_TAX =W_SUBT * 0.08;
UPDATE INVOICE
SET INV_SUBTOTAL = W_SUBT,
INV_TAX = W_TAX,
INV_TOTAL =W_SUBT + W_TAX
WHERE INV_NUMBER = W_IN;
END IF;
END; $$
DELIMTER ;
第 2 行的 ERROR 1064 (42000):您的 SQL 语法有错误; 检查与您的 MySQL 服务器版本相对应的手册 在 'IN NUMBER) AS W_CHK NUMBER = 0 附近使用的正确语法; W_SUBT 数字 = 0; W_TAX NUMBER = 0; BEGIN SELEC' 在第 1 行
【问题讨论】:
-
IN 必须在参数名之前:proc_parameter: [ IN |输出 | INOUT ] param_name 类型。 dev.mysql.com/doc/refman/8.0/en/create-procedure.html
标签: mysql sql stored-procedures