現在workbenchのほうでプロシージャを作りました。
この作ったプロシージャにShellから繋げてプロシージャの例外処理の結果をShellに返す方法を知りたいです。
ソース MYSQLworkbench
DELIMITER $$
DROP PROCEDURE IF EXISTS testproc1$$
CREATE PROCEDURE testproc1()
BEGIN
DECLARE done INT;
DECLARE CONTINUE HANDLER FOR SQLSTATE '21000' SET done = 0;
SET @num=(SELECT a_tensou FROM a_c_info);
SET @path=(select s_nm3 from s_system where s_Key2 = 12);
IF @num=2 THEN
SET @query = CONCAT('SELECT * FROM a_c_info where a_tensou = 2 INTO OUTFILE ',"'", @path ,"'",' FIELDS TERMINATED BY ","');
PREPARE getExtends FROM @query;
EXECUTE getExtends;
DEALLOCATE PREPARE getExtends;
SET SQL_SAFE_UPDATES = 0;
update a_c_info set a_tensou=3 where a_tensou=2;
END IF;
END$$
DELIMITER ;
このソースはざっくりと説明するとa_tensouカラムに2という数字が入ったら、csvファイルを出力してカラム3に変換するというコードです。
DECLARE CONTINUE HANDLERは error 1241 サブクエリエラーを処理しています。
そしてshellからこのストアドプロシージャが呼び出された時、正常なら0 なにかエラーなら1という戻り値を返したいのですがやり方わかるかたいたらよろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。