17.10 - 例: 外部キューにメッセージを書き込むUDFの使用 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ定義言語 構文規則および例

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Release Date
2021年7月
Content Type
プログラミング リファレンス
Publication ID
B035-1144-171K-JPN
Language
日本語 (日本)

この例は、外部キューにメッセージを書き込むCのスカラーUDF write_mqを作成します。この関数はMQアクセス モジュールを呼び出します。これは、TPumpジョブまたは他のユーティリティがキューからの処理を行なうときに使用するのと同一のモジュールです。

このSQLは、選択リストにスカラーUDFとそれが必要とする引数しか入っていない、単純なSELECTリクエストです。このリクエストが実行されると、'Hello World'というメッセージが生成され、クライアントのMQキューに置かれます。

    SELECT WriteMQ('queue.manager.1','QUEUE1','CHANNEL1/TCP/           153.64.119.177', 'Hello World');

渡されるパラメータはそれぞれ、キュー マネージャ(qmgr)、キュー名(qnm)、クライアント通信チャネル(channel)、およびメッセージそのもの(vcmsg)です。

以下は、関数の作成に使用されるDDLです。

    CREATE FUNCTION write_mq(
      qmgr    VARCHAR(256), 
      qnm     VARCHAR(256), 
      channel VARCHAR(256), 
      vcmsg   VARCHAR(32000))     
    RETURNS INTEGER
    LANGUAGE C 
    NO SQL 
    PARAMETER STYLE SQL 
    EXTERNAL NAME 'F:emruwmq:SI:cmqc:/usr/include/cmqc.h:SL:mqic
      :SL:mqmcs:SS:emruwmq:/home/rmh/projects/emruwmq/emruwmq.c';