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

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
Published
2021年1月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/ncd1596241368722.ditamap
dita:ditavalPath
ja-JP/ncd1596241368722.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';