DROP PROCEDURE IF EXISTS proc_x;
DELIMITER #
CREATE DEFINER=`root`@`localhost` PROCEDURE proc_x(sequel CHAR)
proc_main:BEGIN
SET @SQL = CONCAT(@sequel);
PREPARE stmt FROM @SQL;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END proc_main #
上記は、MySQLデータベースにストアドプロシージャを作成するための構文です。次のステートメントを実行すると、エラーが発生します。
CALL proc_x("INSERT INTO tbl_rec(id,name,brnachID) values(10,'Krunal',07)");
エラー:エラー1064(42000)、93行目:SQL構文にエラーがあります。 MySQLサーバーのバージョンに対応するマニュアルで、1行目の「NULL」付近で使用する正しい構文を確認してください
誰かがそれを解決するのを手伝ってくれる?
現在、UNIXでMysqlを使用しています。
_(sequel CHAR)
CONCAT(@sequel)
_
@変数は、@以外の変数から完全に独立しています。
2つの修正が必要です:
SET @SQL = CONCAT(@sequel);
-> _SET @SQL = sequel;
_(sequel CHAR)
_-> _(sequel VARCHAR(999))
_次のようにクエリを変更します。
INSERT INTO table_name (`column1`, `column2`) values ('val1', 'val2');
列名は引用符ではなく `(タブの上の文字)で囲まれていることに注意してください