EXTERNAL NAME句は、外部ルーチンの作成に必要なすべての構成要素の場所を指定するために使用します。
外部ストアド プロシージャにインクルードするファイルや外部ルーチンにリンクするファイルはすべて、データベースへのアクセスが可能でなければなりません。これらのファイルは、クライアント システム上またはTeradata Database内に配置できます。ただし、セキュリティ上の理由から、ソースをクライアント システム上に残し、外部ルーチンを作成するプログラマが、コードにアクセスする人を制御できる状態にしておくことが最善です。そのためには、CオプションをEXTERNAL STRING LITERAL句に指定して、ソースがそのクライアントに保存されていることをシステムに知らせます。
セキュリティが重要でなければ、ソース コード ファイルをサーバー上に保存できます。そのための専用のデフォルト サーバー ディレクトリが存在します。
システムは、EXTERNAL NAME句で指定されたクライアント上のソース、ヘッダー、オブジェクトの各ファイルをサーバーに自動的にコピーします。システムは外部ライブラリや共有オブジェクト ファイルを転送しないので、これらは手動でTeradata Databaseにインストールする必要があります。
外部関数名は、次の3つの方法のいずれかによって指定できます。
- オプションのPARAMETER STYLE句のある外部ルーチン名識別子として。
- 外部ルーチンのオブジェクト名として。
- 指定先のコード実体への明示的なパスを示すコード化文字列として。
外部ルーチン名 結果 識別子 外部ルーチン オブジェクトのエントリ ポイント名です。 識別子は大文字と小文字を区別して、CまたはC++外部ルーチン名と一致しなければなりません。
文字列 以下のうちの1つによって構成されます。 - CまたはC++外部ルーチンのエントリ ポイント名の指定
- 指定先のコード実体へのエンコードされたパス
Java外部ルーチンの場合、外部Java参照文字列を指定する必要があります。
外部名ストリングの最大長は1,000文字です。
外部ルーチン定義ごとに複数のエンコードされた文字列を指定できます。ただし、文字列リスト内での指定が1回に限定されている文字列もあります。