gpt4 book ai didi

MySQL存储过程存在参数和变量错误

转载 作者:行者123 更新时间:2023-11-30 00:25:16 25 4
gpt4 key购买 nike

虽然我按照本教程操作,但遇到语法错误 http://forums.mysql.com/read.php?98,358569 .. 缺少一些东西,我不知道它是什么。错误消息说它在第 1 行。我一遍又一遍地检查了这一行,但没有看到问题出在哪里。

DELIMITER $$
create or replace procedure profile_fullname(IN memid number)
begin
declare v_name varchar2(100);
declare fn varchar2(50);
declare ln varchar2(50);


select fname, lname into fn, ln from member where memberid = memid;
v_name := fn || ' ' || ln;

insert into profile(memberid, fullName) values (memid, v_name);

END $$

DELIMITER ;

错误消息#1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在第 1 行“procedure profile_fullname(IN memid number) begin statements v_name varchar2(100)”附近使用的正确语法

最佳答案

您的代码中有很多错误:

使用DROP PROCEDURE IF EXISTS profile_fullname;而不是or replace ,只能与 View 一起使用。

替换numberprofile_fullname(IN memid number)INT或任何你需要的东西。没有number输入 MySQL。

全部替换varchar2VARCHAR 。看起来你把事情和 Oracle 搞混了。也没有varchar2类型。

替换v_name := fn || ' ' || ln;SET v_name := fn || ' ' || ln; 。您必须使用关键字 SET 设置变量.

DROP PROCEDURE IF EXISTS profile_fullname;

DELIMITER $$

CREATE PROCEDURE profile_fullname(IN memid INT)

BEGIN

DECLARE v_name VARCHAR(100);
DECLARE fn VARCHAR(50);
DECLARE ln VARCHAR(50);

SELECT fname, lname into fn, ln
FROM member
WHERE memberid = memid;

SET v_name := fn || ' ' || ln;

INSERT INTO profile (memberid, fullName)
VALUES (memid, v_name);

END $$

DELIMITER ;

关于MySQL存储过程存在参数和变量错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22938272/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com