2016-12-15 5 views
1

phpmyadminからこのプロシージャを作成しましたが機能しません。record_idの最後の単語を指定の文字列IDに置き換えて使用しましたが、 。where節のパラメータを使用するMysqlプロシージャ

DROP PROCEDURE `prcd_update_record`; 
CREATE DEFINER=`root`@`localhost` 
PROCEDURE `prcd_update_record`(
    IN `talep_id` VARCHAR(24), 
    IN `vall` INT(10) 
) 
NOT DETERMINISTIC 
MODIFIES SQL DATA SQL 
SECURITY INVOKER 

UPDATE  `talep_malzeme` 
SET   `kalan_miktar` = vall 
WHERE  `talep_malzeme`.`id` = talep_id; 

私はこのようにそれを実行します。

SET @p0='33'; SET @p1='57fb7911ea91e9efa'; CALL `prcd_update_record`(@p0, @p1); 
+0

どのようなエラーが表示されますか?取得しているエラーを追加する –

答えて

2
DROP PROCEDURE IF EXISTS `prcd_sevk_toplam`; 
create procedure prcd_sevk_toplam(talep_id int, vall VARCHAR(255)) 
BEGIN 
    UPDATE `talep_malzeme` SET `kalan_miktar` = vall WHERE `talep_malzeme`.`id` = talep_id; 
END; 

これはあなたを助けることを願っています。

1

は、あなたが間違ったパラメータの順序を持​​っているように、あなたはあなたのパラメータ定義あたりのパラメータに適切な値を提供する必要があります

CALL `prcd_sevk_toplam`(@p1, @p0); 
1

を試してみてください見えます。あなたの手順は

PROCEDURE `prcd_sevk_toplam`(
    IN `talep_id` VARCHAR(24), 
    IN `vall` INT(10) 

以下のようにパラメータを受け付けそして、あなたはvarcharにそれらの両方を設定しています。それはここで問題になる可能性があります。

SET @p0=33; 
SET @p1='57fb7911ea91e9efa'; 
CALL `prcd_sevk_toplam`(@p1, @p0); 
関連する問題