非保護モードUDFの検出と実行モードの変更 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQL外部ルーチン プログラミング

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年6月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/qwr1571437338192.ditamap
dita:ditavalPath
ja-JP/qwr1571437338192.ditaval
dita:id
B035-1147
Product Category
Software
Teradata Vantage

Teradataには、非保護モードで現在実行されているUDFのリストを生成し、実行モードを変更するためのBTEQスクリプトが用意されています。

このスクリプトは、Teradataソフトウェア ディストリビューションのetcディレクトリに入っています。このディレクトリを確認するには、コマンド ラインに以下を入力します。

pdepath -e

このスクリプトを実行するには、BTEQにユーザーDBCとしてログオンする必要があります。例えば、次のようになります。

bteq .logon dbc,dbc_password

dbc_passwordはユーザーDBCのパスワードです。

目的 以下のスクリプトを使用
システム上の非保護モードUDFのリストを入手する udflist.bteq.

このスクリプトは、現在の作業ディレクトリ内にudflist.sqlというファイルを作成します。現在の作業ディレクトリに対する書き込み許可を持っている必要があります。

UDFのリストを読み取り、実行モードを保護に変更する udf_u2p.bteq.

このスクリプトはUDFのリストをudf_u2p.sqlというファイルから読み取り、実行モードを保護に変更します。udf_u2p.sqlファイルの内容を作成するには、udflist.bteqスクリプトがudflist.sqlファイル内に生成するUDFのリストを使用します。

UDFのリストを読み取り、実行モードを非保護に変更する udf_p2u.bteq.

このスクリプトはUDFのリストをudf_p2u.sqlというファイルから読み取り、実行モードを非保護に変更します。udf_p2u.sqlファイルの内容を作成するには、udflist.bteqスクリプトがudflist.sqlファイル内に生成するUDFのリストを使用します。

例えば、csデータベースに対して非保護モードで実行する2つのUDFとして、imultとisqrがインストールされているとします。udflist.bteqを実行すると、現在の作業ディレクトリにudflist.sqlというファイルが生成され、その内容は以下のようになります。

/* -------------------------------------------------------------- */
/* List Of Unprotected Mode UDFs                                  */
/* -------------------------------------------------------------- */
'6373'xn.'696D756C74'xn /* cs.imult */
'6373'xn.'69737172'xn /* cs.isqr */

UDFの実行モードを保護に変更するには、udflist.bteqから現在の作業ディレクトリ内のudf_u2p.sqlというファイルにUDF名をコピーします。

'6373'xn.'696D756C74'xn /* cs.imult */
'6373'xn.'69737172'xn /* cs.isqr */

udf_u2p.bteqを実行すると、現在の作業ディレクトリからudf_u2p.sqlの内容が読み取られます。