A5:SQL Mk-2

開発のこと、日々のこと

PostgreSQLの関数作成時のエラー

ホーム フォーラム A5:SQL Mk-2掲示板 PostgreSQLの関数作成時のエラー

  • このトピックには2件の返信、1人の参加者があり、最後にやじゅにより2年、 5ヶ月前に更新されました。
3件の投稿を表示中 - 1 - 3件目 (全3件中)
  • 投稿者
    投稿
  • #10354 返信
    やじゅ
    ゲスト

    A5:SQL Mk-2で関数を作成しようとするのですが、下記のエラーで作成できません。
    PgAdmin 4やAqua Database Studioでは作成できるのですが、何が悪いのでしょうか。
    $function$の部分を$BODY$に変更してもエラーになります。

    unterminated dollar-quoted string at or near “$function$”
    DECLARE
    username VARHCAR(36)

    一部切り取り
    CREATE OR REPLACE FUNCTION test()
    RETURNS trigger
    LANGUAGE plpgsql
    AS $function$
    DECLARE
    username VARCHAR(36);

    PgAdmin 4で一旦作成して、A5:SQL Mk-2でストアドプロシジャーを開くのソースをコピーした後に関数を削除、コピーしたソースを新規ドキュメントのSQLで作成したも同じエラーになります。

    #10363 返信
    松原正和
    キーマスター

    やじゅさんこんにちは。
     
    これは、もしかするとSQLの区切り文字が “;” になってしまっていないでしょうか?。A5:SQL Mk-2はデフォルトで “;” をSQLの区切り記号として用いるため、CREATE PROCEDURE 文の途中にある “;” で区切ってしまい、中途半端な CREATE PROCEDURE 文をサーバーに送ってしまいます。
     
    この場合は、SQLの実行モードを “ストアドプロシージャとして実行”を選択するか、SQLの区切り文字を “;” 以外(例えば、 “/” のみの行)に切り替えるなどしてください。

    #10387 返信
    やじゅ
    ゲスト

    なるほど、SQLの区切り文字が悪さしていたんですね。
    SQLの実行モードを “ストアドプロシージャとして実行することで解決しました。

3件の投稿を表示中 - 1 - 3件目 (全3件中)
返信先: PostgreSQLの関数作成時のエラーで#10387に返信
あなたの情報:




コメントは受け付けていません。