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

带参数和变量的MySQL存储过程错误,mysql,Mysql,尽管我已经学习了本教程,但还是出现了语法错误。。有些东西不见了,我想不出是什么。错误消息说它在第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

尽管我已经学习了本教程,但还是出现了语法错误。。有些东西不见了,我想不出是什么。错误消息说它在第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行的“过程配置文件\u fullnameIN memid number begin declare v\u name varchar2100”附近使用的正确语法

create or alter procedure profile_fullname(IN memid number)
而不是

create or replace procedure profile_fullname(IN memid number)

希望这对您有所帮助。

您的代码中有很多错误:

如果存在profile_fullname,则使用DROP过程;而不是或替换,只能与视图一起使用

将memid number中的profile_fullname中的数字替换为INT或任何您需要的数字。MySQL中没有数字类型

用VARCHAR替换所有varchar2。看来你把事情和甲骨文搞混了。也没有varchar2类型

替换v|U名称:=fn | |“”| | ln;使用集合v|u name:=fn | |“”| | ln;。必须使用关键字set设置变量


实际的错误是什么?DELIMITER$$,然后启动存储过程,因为您尚未启动,这就是为什么它在第1行出现错误。您是否在最开始时使用了DELIMITER$$,然后创建或替换过程配置文件\u FullName是的,我使用了DELIMITER@user3470953,第1行显示语法错误1@NaveedYousaf我有我的分隔符$$即使这是他的代码中唯一的错误,您的代码也无法工作。MySQL中没有CREATE或ALTER子句,afaik。@Wabbit使用的CREATE或REPLACE子句确实存在,但只能应用于视图。
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 ;