A5:SQL Mk-2

開発のこと、日々のこと

DB2 トリガー作成ができません

ホーム フォーラム A5:SQL Mk-2掲示板 DB2 トリガー作成ができません

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

    職場でDB2を使っておりまして、SQLクライアントツールとしてA5:SQL Milkを利用させていただいております。
    CREATE TRIGGERステートメントを使って、トリガー発動で1個目のINSERT文と2個目のINSERT文を処理するトリガーを作成しようとしたのですが、CREATE文を実行すると1個目のINSERT文と2個目のINSERT文の区切りの所で下記エラー返されます。

    (抜粋)
    「予期しないトークン “INSERT” が見つかりました。予期されたトークンに “<delim_semicolon>” が含まれている可能性があります」

    エラーが起きている箇所(カラム名とテーブル名は、”x”と”X”に変換しております。
    VALUES(xxxx,xxxx,xxxx);
    INSERT INTO XXXX

    区切りは、1個目のINSERT文のVALUE句の最後に「;」を使った後、2個目のINSERT文につなげているのですが、何が原因でエラーが発生しているのか原因特定できていない状況です。
    SQLの文法的にも会社でこのような処理をしているものを参考に作っているため、間違っているとは思えないのですが、お力添えいただけないでしょうか?

    #21607 返信
    利用者A
    ゲスト

    その後DB2のコマンドプロンプトで実行すると、トリガー作成できましたので、ツール側の不具合かと思いますので今後少ないケースかもしませんが、不具合修正していただけたらと思います。

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

    利用者Aさんこんにちは。
     
    A5:SQL Mk-2はデフォルト動作では “;” (セミコロン)をSQLの区切りとしてそこで区切ってSQLをサーバーに送信します。このために中途半端な CREATE TRIGGER をサーバーに送ってしまったのだと思います。
     
    解決するには、以下のいずれかを行ってください。
    ・ツールバーの実行ボタン右の下向き▼を押下して、「実行位置」を「プロシージャモード」に変更する。
    ・SQL区切り文字を “;” 以外に設定する。
     
    なお、オプション画面から[SQL]タブで「SQLの区切りのデフォルト値」を変えることもできます。

    #21618 返信
    利用者A
    ゲスト

    ご回答いただきありがとうございます。

    ご教授いただいたやり方で同じCREATE TRIGGER文を実行すると、
    トリガー作成することができました。
    ツールの使い方が理解できておらず軽々に不具合と言ってしまい失礼しました。
    問題解消できました。ありがとうございます。

4件の投稿を表示中 - 1 - 4件目 (全4件中)
返信先: DB2 トリガー作成ができません
あなたの情報:




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