Quantcast
Channel: 初心者タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 21085

[mariaDB] ストアドファンクション内のDECLARE文でシンタックスエラーが出る

$
0
0

はじめに

mariaDBでストアドファンクションを定義している最中、絶対に間違っていないDECLARE文でエラーが出ました。

定義したかったFunction
CREATEORREPLACEFUNCTIONtest(argINT)RETURNSINTDETERMINISTICBEGINDECLAREnumAINTDEFAULT0;SETnumA=arg;DECLAREnumBINTDEFAULT0;SETnumB=numA;RETURNnumB;END;

受け取った引数を変数numAに入れて、
numAを変数numBに入れて、
numBをreturnするだけ。

結果
ERROR 1064 (42000) at line 3 in file: '(ファイル名)': You have an error in your SQL syntax;check the manual that corresponds to your MariaDB server version for the right syntax to use near 'DECLARE numB INT DEFAULT 0;
  SET numB = numA;  RETURN numB;END' at line 8

DECLARE numB INT DEFAULT 0;の辺りがおかしいよと。
え~?numAはよくてnumBはダメなの?

変数宣言は先頭だけだった

定義できたFunction
CREATEORREPLACEFUNCTIONtest(argINT)RETURNSINTDETERMINISTICBEGINDECLAREnumAINTDEFAULT0;DECLAREnumBINTDEFAULT0;SETnumA=arg;SETnumB=numA;RETURNnumB;END;
結果
Query OK, 0 rows affected (0.00 sec)

DECLAREをファンクションの先頭にまとめて書いたらできた。
そういう感じなんだ、勉強になった。。。

参考

https://www.atmarkit.co.jp/ait/articles/0209/12/news001.html


Viewing all articles
Browse latest Browse all 21085

Trending Articles