サーバー移行した際にmysql(MariaDB)のバージョンが変わり、前に登録できたストアドファンクションが
登録できなくなってしまいました。
旧環境 MariaDB 10.1.13
新環境 MySQL 5.7.16
sql
1CREATE FUNCTION kana2KANA(data TEXT) RETURNS TEXT DETERMINISTIC 2BEGIN 3 DECLARE kana1_len INT(2); 4 DECLARE kana2_len INT(2); 5 DECLARE kana1_h VARCHAR(61) DEFAULT 'アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンッャュョァィゥェォー。「」、・'; 6 DECLARE kana1_z VARCHAR(61) DEFAULT 'アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンッャュョァィゥェォー。「」、・'; 7 DECLARE kana2_h VARCHAR(52) DEFAULT 'ガギグゲゴザジズゼゾダヂヅデドバビブベボパピプペポヴ'; 8 DECLARE kana2_z VARCHAR(26) DEFAULT 'ガギグゲゴザジズゼゾダヂヅデドバビブベボパピプペポヴ'; 9 SET kana1_len = CHAR_LENGTH(kana1_h); 10 SET kana2_len = CHAR_LENGTH(kana2_h); 11 WHILE kana2_len > 0 DO 12 SET data = REPLACE(data,SUBSTRING(kana2_z,kana2_len,1), SUBSTRING(kana2_h,kana2_len*2-1,2) ); 13 SET kana2_len = kana2_len - 1; 14 END WHILE; 15 WHILE kana1_len > 0 DO 16 SET data = REPLACE(data, SUBSTRING(kana1_z,kana1_len,1), SUBSTRING(kana1_h,kana1_len,1)); 17 SET kana1_len = kana1_len - 1; 18 END WHILE; 19 RETURN data; 20END
エラーメッセージ
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3
こちらを登録するにはどのようにするのが良いでしょうか?

回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。