带参数和变量的MySQL存储过程错误
尽管我已经学习了本教程,但还是出现了语法错误。。有些东西不见了,我想不出是什么。错误消息说它在第1行。我一遍又一遍地检查这条线路,看不出问题出在哪里带参数和变量的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
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 ;