例: 外部キューにメッセージを書き込むUDFの使用 - Teradata Database - Teradata Vantage NewSQL Engine - 例: 外部キューにメッセージを書き込むUDFの使用、CREATE FUNCTION (外部形式)およびREPLACE FUNCTION (外部形式) 構文の文。

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

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Published
2019年3月
Language
日本語
Last Update
2019-10-29
dita:mapPath
ja-JP/wkf1512081455740.ditamap
dita:ditavalPath
ja-JP/wkf1512081455740.ditaval
dita:id
B035-1144
Product Category
Software
Teradata Vantage

この例は、外部キューにメッセージを書き込む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';