创建mysql更新存储过程

时间:2015-01-08 15:02:22

标签: mysql stored-procedures

我收到错误1064创建更新存储过程,我不知道哪里错了

DELIMITER $$

CREATE

PROCEDURE `sms_pigen`.`sp_update`(IN Clearing_Agent_ID INT(11), IN ClientCode VARCHAR(10), IN ClientName VARCHAR(50), IN PostalAdd VARCHAR(200), IN Telephone VARCHAR(30), IN Fax VARCHAR (30), IN EmailAdd1 VARCHAR(255), IN EmailAdd2 VARCHAR(255), IN EmailAdd3 VARCHAR(255), IN Website VARCHAR(50), IN TotalDeposit DECIMAL(18,2), IN AccountBal DECIMAL(18,2), IN ChargeRate DECIMAL(10,2))

BEGIN
UPDATE t_pi_clients SET pClientCode = ClientCode, pClientName = ClientName, pPostalAdd = PostalAdd, pTelephone = Telephone, pFax = Fax, pEmailAdd1 = EmailAdd1, pEmailAdd2 = EmailAdd2, pEmailAdd3 = EmailAdd3, pWebsite = Website, pTotalDeposit = TotalDeposit, pAccountBal = AccountBal, pChargeRate = ChargeRate WHERE Clearing_Agent_ID = Clearing_Agent_ID;

END$$

DELIMITER;

错误代码

Query : CREATE     /*[DEFINER = { user | CURRENT_USER }]*/     PROCEDURE `sms_pigen`.`sp_update`(IN Clearing_Agent_ID INT(11), IN Client...

错误代码:1064 您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在'/ * LANGUAGE SQL附近使用正确的语法     / * LANGUAGE SQL     END $$ DELIMITER'在第16行 执行时间:00:00:00:000 转机时间:00:00:00:000 总时间:00:00:00:000

1 个答案:

答案 0 :(得分:0)

CREATE DEFINER=`pcbb-uat`@`%` PROCEDURE `Update_Data`(IN TABLE_NAME longtext,in column_name varchar(1000),in column_value longtext,in Parameter varchar(1000),in parameter_value varchar(100))
BEGIN
     
                set @whereclouse = CONCAT('[',Parameter,'] = ''',parameter_value,'''');
                SET @query = CONCAT('update [',TABLE_NAME,'] SET [',column_name,'] = ''',column_value,'''  WHERE ');
                set @updt = concat(@query,@whereclouse);
                select @updt;
                PREPARE stmt FROM @updt;
                EXECUTE stmt ;
                DEALLOCATE PREPARE stmt;
END