━目次━
今更ながらですが、毎回「どうやったっけな~」となるので備忘。
現象
例えばPostgreSQLだと、pgAdminでは流れるストアド定義が、A5ではエラーになります。
unterminated dollar-quoted string at or near ~
みたいなメッセージが出たりします。
ちょっと工夫すれば解決するので紹介します。
サンプルストアド
こんなFunctionを登録したいとしましょう。ついでに権限も付与します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
-- FUNCTIONの登録 CREATE OR REPLACE FUNCTION test."TestFunc"( IN "inParam1" integer ) RETURNS boolean AS $BODY$ BEGIN SELECT * FROM test."TestTable"; RETURN TRUE; END; $BODY$ LANGUAGE plpgsql STABLE COST 100 ROWS 1000; -- 権限の付与 ALTER FUNCTION test."TestFunc"(integer) OWNER TO "adminuser"; |
エラー解決方法
恐らくこのまま実行するとデフォルトでA5SQLは
ストアドプロシージャの実行には「プロシージャ」モードを利用します。
「プロシージャ」モードに切り替えますか?
と聞いてきます。
ここで「はい」を押せばいけそうですが、これが罠です!
とりあえず「いいえ」を押してください。
※「はい」を押してしまった人も下記方法で解決できます。
①上部ツールバーの左から2番目、緑色の三角の右の「▼」を押下
②[SQL区切り文字]を[“/”のみの行]にする
※「はい」を押してしまっている人は1度[実行位置]を[キャレット位置]に戻すと変更できるようになります。
③実行単位毎の終わりに「/(スラッシュ)」を入れる
④実行!
これで全選択してCtrl + EnterでSQL実行すれば無事流れます!
さいごに
A5:SQLはほとんどすべてのDBを使えますしけっこう好きなんですが、ちょいちょいクセがあるので厄介です。。。
それでは!また!!
最後まで読んで頂きありがとうございます!
人気の記事だけ集めたので是非覗いていってください^^
厳選!目的別にオススメ記事を紹介-あなたの欲しい情報がここに-
人気の記事だけ集めたので是非覗いていってください^^
厳選!目的別にオススメ記事を紹介-あなたの欲しい情報がここに-