我有mysql程序的代码,但我无法创建程序
DELIMITER @@
CREATE PROCEDURE hrpayroll.sal_gen_init
(IN `emp_id` INT)
BEGIN
DECLARE branch_cd varchar(20)
DECLARE comp_cd varchar(20)
SELECT p.BRANCH_CD IN branch_cd,p.COMP_CD IN comp_cd FROM p_employee_mst p WHERE p.EMPL_ID = emp_id
INSERT INTO p_sal_hdr (COMP_CD,BRANCH_CD,EMPL_ID) VALUES(comp_cd,branch_cd,emp_id)
END @@
DELIMITER ;
我收到此错误
错误代码1064,SQL状态42000:SQL语法中有错误;查看与您的MySQL服务器版本对应的手册,以便在'DECLARE comp_cd varchar(20)附近使用正确的语法 选择p.BRANCH_CD IN branch_cd,p.COMP_CD IN com'第5行
答案 0 :(得分:0)
在declare语句后使用;
(分号)。前,
BEGIN
DECLARE branch_cd varchar(20);
DECLARE comp_cd varchar(20);
答案 1 :(得分:0)
有一些语法错误。试试这个程序 -
CREATE PROCEDURE sal_gen_ini(IN `emp_id` INT)
BEGIN
DECLARE branch_cd_var varchar(20);
DECLARE comp_cd_var varchar(20);
SELECT
p.BRANCH_CD, p.COMP_CD INTO branch_cd_var, comp_cd_var
FROM
p_employee_mst p
WHERE
p.EMPL_ID = emp_id;
INSERT INTO p_sal_hdr (COMP_CD,BRANCH_CD,EMPL_ID)
VALUES(comp_cd_var,branch_cd_var,emp_id);
END
请注意,我还重命名了声明的变量,以避免字段和变量值出现问题。
尝试使用一个SELECT...INTO Statement而不是两个SELECT和INSERT。