# tOracleSP

Oracleデータベースのストアドプロシージャーを呼び出します。

tOracleSPでは、データベース内の複数のクエリーまたは複合的なクエリーを一元管理し、容易に呼び出す便利な方法が使用できます。

## tOracleSPの標準プロパティ

これらのプロパティは、標準ジョブのフレームワークで実行されているtOracleSPを設定するために使われます。

標準のtOracleSPコンポーネントは、データベースファミリーに属しています。

このフレームワーク内のコンポーネントは、すべてのTalend製品で利用できます。

情報メモ注: このコンポーネントは、動的データベースコネクターの特定のバージョンです。データベース設定に関連するプロパティは、データベースタイプの選択に応じて異なります。動的データベースコネクターについては、[DB Genericコンポーネント](https://help.qlik.com/talend/r/ja-JP/8.0/components/db-generic/db-generic-component)をご覧ください。

## 基本設定

| プロパティ | 説明 |
| --- | --- |
| データベース | 目的のデータベースタイプをリストから選択し、[Apply] (適用)をクリックします。 |
| [Use an existing connection] (既存の接続を使用) | 定義済みの接続の詳細を再利用する場合は、このチェックボックスをオンにして、[Component List] (コンポーネントリスト)ドロップダウンリストから、目的の接続コンポーネントを選択します。<br><br>WALLETタイプの接続は、tCreateTableコンポーネント、tOracleInputコンポーネント、tOracleOutputコンポーネントでのみ使用されます。起こりうるエラーを防止できるよう、選択した接続がWALLETタイプでないことを確認してください。<br><br>情報メモ注: ジョブに親ジョブと子ジョブが含まれている時は、親ジョブと子ジョブの間の既存の接続を共有したい場合(たとえば、親ジョブで作成した接続を子ジョブと共有するなど)には、次のように実行します。<br><br><ol> <li>親レベルで、共有するデータベース接続を、そのデータベース接続そのものを作成する接続コンポーネントの<span>[Basic settings] (基本設定)</span>ビューに登録します。 </li> <li>子レベルで、登録済みのそのデータベース接続を読み取るために専用の接続コンポーネントを使用します。 </li> </ol><br><br>ジョブレベル全体でデータベース接続を共有する方法の例は、[データベース接続を共有](https://help.qlik.com/talend/r/ja-JP/7.3/studio-user-guide/sharing-database-connection)をご覧ください。 |
| [Connection type] (接続タイプ) | 使用できるドライバーのドロップダウンリスト:<br><br>Oracle OCI: Oracleデータベースへのインターフェイスを提供する一連のC言語ソフトウェアAPIでOracle Callインターフェイスを使用するには、この接続タイプを選択します。<br><br>[Oracle Service Name] (Oracleサービス名): リモートデータベースへの接続時に指定するTNSエイリアスを使用するには、この接続タイプを選択します。<br><br>Oracle SID: システムの特定のデータベースを一意識別するには、この接続タイプを選択します。<br><br>Oracle Custom: クラスター化されたデータベースにアクセスするには、この接続タイプを選択します。 |
| [Property type] (プロパティタイプ) | <ul> <li> <p> <span><span>[Built-in] (組み込み)</span>と<span>[Repository] (リポジトリー)</span>のいずれかです。</span></p> </li> <li> <p> <span>[Built-In] (組み込み)</span>: 一元的に保存されるプロパティデータはありません。</p> </li> <li> <p> <span>[Repository] (リポジトリー)</span>: プロパティが保管されるリポジトリーファイルを選択します。後続フィールドは、取得されたデータを使用して自動的に入力されます。</p> </li> </ul> |
| [DB Version] (データベースバージョン) | 使用中のOracleバージョンを選択します。 |
| [Host] (ホスト) | データベースサーバーのIPアドレス。 |
| [Port] (ポート) | データベースサーバーのリスニングポート番号。 |
| [Database] (データベース) | データベースの名前。 |
| [Schema] (スキーマ) | スキーマの名前。 |
| [Username] (ユーザー名)と[Password] (パスワード) | データベースユーザー認証データ。<br><br>パスワードを入力するためには、パスワードフィールドの横にある[...]ボタンをクリックし、ポップアップダイアログボックスにパスワードを二重引用符で囲んで入力して[OK]をクリックし、設定を保存します。 |
| [Schema] (スキーマ)と[Edit schema] (スキーマを編集) | <ul> <li> <p>スキーマとは行の説明で、処理された後に次のコンポーネントに渡されるフィールドの数を定義するものです。スキーマは<span>[Built-in] (組み込み)</span>か、<span>[Repository] (リポジトリー)</span>にリモートで保存されます。 </p> <p>スキーマを変更するには<span>[Edit schema] (スキーマを編集)</span>をクリックします。現在のスキーマが<span>リポジトリー</span>タイプの場合は、3つのオプションを利用できます。</p> <ul> <li> <p> <span>[View schema] (スキーマを表示)</span>: スキーマのみを表示する場合は、このオプションを選択します。</p> </li> <li> <p> <span>[Change to built-in property] (組み込みのプロパティに変更)</span>: ローカルで変更を行うためにスキーマを<span>組み込み</span>に変更する場合は、このオプションを選択します。</p> </li> <li> <p> <span>[Update repository connection] (リポジトリー接続をアップデート)</span>: リポジトリーに保存されているスキーマに変更を加え、変更後にそのコンテンツをすべてのジョブにプロパゲートするかどうかを決める場合は、このオプションを選択します。</p> <p>変更を現在のジョブにのみ反映する場合は、変更後、<span>[No] (いいえ)</span>を選択し、<span>[Repository Content] (リポジトリーコンテンツ)</span>ウィンドウで再びこのスキーマのメタデータを選択します。</p> </li> </ul> </li> <li> <p> <span>[Built-in] (組み込み)</span>: そのコンポーネントに対してのみスキーマを作成し、ローカルに保管します。</p> </li> <li> <p> <span>[Repository] (リポジトリー)</span>: スキーマは作成済みで、リポジトリーに保管されています。さまざまなプロジェクトやジョブデザインで再利用できます。</p> </li> </ul> |
| [SP Name] (ストアドプロシージャー名) | ストアドプロシージャー(またはファンクション)の正確な名前を入力します |
| [Is Function] (ファンクションとして使用) /[Return result in] (結果を返す) | ストアドプロシージャーがファンクションであり、1つの値のみが返されるようにするには、このチェックボックスをオンにします。<br><br>スキーマカラムのリストから返す値を選択します。 |
| [Parameters] (パラメーター) | <ul> <li> <p>[+]ボタンをクリックして、プロシージャーで必要となる各種<span>[Schema Columns] (スキーマカラム)</span>を選択します。SPスキーマには、プロシージャーで使用されているパラメーターを超える数のカラムを含めることができます。</p> </li> <li> <p>パラメーターの<span>[Type] (タイプ)</span>を選択します。</p> <p> <span>IN</span>: 入力パラメーター。</p> <p> <span>OUT</span>: 出力パラメーター/戻り値。</p> <p> <span>IN OUT</span>: 通常、入力パラメーターはプロシージャー(ファンクション)によって変更された後に値として返されます。</p> <p> <span>RECORDSET</span>: 入力パラメーターは単一の値ではなく、値のセットとして返されます。</p> <div><span>情報メモ</span><span>注:</span> <p>データベーステーブルまたはDBクエリーから一連のレコードを分析し、単一のレコードを返す場合は、<a href="https://help.qlik.com/talend/ja-JP/components/8.0/mysql/tmysqlconnection-tmysqlrollback-tfileinputdelimited-inserting-data-in-mother-daughter-tables-standard-component-the" target="_blank">マザー/ドーターテーブルにデータを挿入する</a>をご覧ください。</p> </div> </li> <li> <p>使用する<span>[Schema Column] (スキーマカラム)</span>がユーザー定義の場合は、<span>[Custom Type] (カスタムタイプ)</span>が使用されます。<span>[Parameters] (パラメーター)</span>テーブルでは、2つの<span>[Custom Type] (カスタムタイプ)</span>カラムが使用できます。最初の<span>[Custom Type] (カスタムタイプ)</span>カラムで、次の手順を実行します。</p> <p> - 対応する<span>[Schema Column] (スキーマカラム)</span>のうちで使用するものがユーザー定義タイプの場合は、<span>[Custom Type] (カスタムタイプ)</span>カラムのチェックボックスをオンにします。 </p> <p> - <span>[Parameters] (パラメーター)</span>テーブルにリスト表示されている<span>[Schema Columns] (スキーマカラム)</span>がすべてカスタムタイプの場合は、<span>[Custom Type] (カスタムタイプ)</span>の前にあるチェックボックスを一括でオンにできます。</p> </li> <li> <p><span>[DB Type] (DBタイプ)</span>リストからデータベースタイプを選択し、ソースデータベースタイプをターゲットデータベースタイプにマップします。 </p> <p> <span>[- Auto-Mapping] (自動マッピング)</span>: ソースデータベースタイプをターゲットデータベースタイプに自動的にマップします。(デフォルト)</p> <p> <span>- CLOB</span>: キャラクターラージオブジェクト。</p> <p> <span>- BLOB</span>: バイナリラージオブジェクト。</p> <p> <span>- DECIMAL</span>: 10進数オブジェクト。</p> <p> <span>- NUMERIC</span>: 0から9までの数字。</p> <p> <span>- XMLTYPE</span>: XMLスキーマタイプ。</p> <div><span>情報メモ</span><span>警告:</span> <p><span>[Return result in] (結果の返却先)</span>リストボックスから選択したカラム、またはパラメーターのINまたはOUTタイプに設定したカラムをXMLTYPEにマップする時は、スキーマでカラムのタイプが[String] (文字列)タイプであることを確認します。</p> </div> </li> <li> <p>2番目の<span>[Custom Type] (カスタムタイプ)</span>カラムで、カスタムタイプを詳細に設定できます。タイプは次のようになります:</p> <p> - <span>STRUCT</span>: 1つのエレメントに使用します。 </p> <p> - <span>ARRAY</span>: エレメントのコレクションに使用します。</p> </li> <li> <p><span>[Custom name] (ユーザー定義の名前)</span>カラムで、このタイプに与えたカスタムタイプの名前を指定します。</p> <div><span>情報メモ</span><span>警告:</span> <p> <em>OUTパラメーターがカスタムタイプを使用している場合は、対応するスキーマカラムでスキーマテーブルのオブジェクトタイプが選択されていることを確認します。</em> </p> </div> </li> </ul> |
| [Specify a data source alias] (データソースエイリアスを指定) | このチェックボックスをオンにし、データソース設定で定義した共有接続プールを使用するために、 *Talend Runtime* 側で作成したデータソースのエイリアスを指定します。このオプションは、 *Talend Runtime* 内にジョブをデプロイして実行する時にのみ機能します。 |

## 詳細設定

| プロパティ | 説明 |
| --- | --- |
| [Additional JDBC parameters] (追加のJDBCパラメーター) | 作成するデータベース接続の接続の追加プロパティを指定します。このオプションは、[Basic settings] (基本設定)の[Use an existing connection] (既存の接続を使用)チェックボックスがオンになっている場合は利用できません。 |
| [NLS Language] (NLS言語) | Unicodeで使用されていないデータに使用する言語をリストで選択します。 |
| [NLS Territory] (NLS地域) | 日付と時刻の形式に使用する規則を選択します。デフォルト値はオペレーティングシステムのデフォルト値です。 |
| [tStatCatcher Statistics] (tStatCatcher統計) | このチェックボックスをオンにすると、ジョブレベルやコンポーネントレベルでジョブ処理メタデータが収集されます。 |
| [Support NLS] (NLSをサポート) | このオプションをオンにすると、グローバリゼーションサポートが有効にできます。関連情報は、[Overview of Globalization Support](https://docs.oracle.com/en/database/oracle/oracle-database/21/nlspg/overview-of-globalization-support.html)をご覧ください。<br><br>このオプションは、[Use an existing connection] (既存の接続を使用)が選択されておらず、[Basic settings] (基本設定)ビューの[DB Version] (データベースバージョン)ドロップダウンリストから、[Oracle 18 and above] (Oracle 18以降)オプションが選択されている場合に利用できます。<br><br>情報メモ注: このオプションは、Talendが提供する8.0.1-R2022-09以降のTalend Studioマンスリーアップデートをインストール済みである時のみ利用可能です。詳細は管理者にお問い合わせください。 |

## 使用方法

| 使用方法のガイダンス | 説明 |
| --- | --- |
| **使用ルール** | このコンポーネントは、中間コンポーネントとして使用されます。開始コンポーネントとしても使用できますが、その場合は入力パラメーターになります。 |
| [Dynamic settings] (ダイナミック設定) | [+]ボタンをクリックしてテーブルに行を追加し、[Code] (コード)フィールドにコンテキスト変数を入力して、ジョブ内で計画した複数の接続からデータベース接続をダイナミックに選択します。この機能は、データストラクチャーが同じでデータベースが異なるデータベーステーブルにアクセスする必要がある場合、特に、Talend Studioを介さずにジョブをデプロイおよび実行する必要がある時など、ジョブの設定を変更できない環境で作業している場合に役立ちます。<br><br>[Dynamic settings] (ダイナミック設定)テーブルは、[Basic settings] (基本設定)ビューで[Use an existing connection] (既存の接続を使用)チェックボックスがオンになっている時のみ利用可能です。ダイナミックパラメーターを定義すると、[Basic settings] (基本設定)ビューの[Component List] (コンポーネントリスト)ボックスは利用できなくなります。<br><br>ダイナミックパラメーターの定義法を示すユースケースについては、[コンテキストベースのダイナミック接続によってデータベースからデータを読み取り](https://help.qlik.com/talend/r/ja-JP/8.0/components/defining-context-groups/reading-data-from-databases-through-context-based-dynamic-connections)と、[ダイナミックにロードされた接続パラメーターを使って異なるMySQLデータベースからデータを読み取り](https://help.qlik.com/talend/r/ja-JP/8.0/components/context/reading-data-from-different-mysql-databases-using-dynamically-loaded-connection-parameters)をご覧ください。ダイナミック設定とコンテキスト変数の詳細は、[ダイナミックスキーマ](https://help.qlik.com/talend/r/ja-JP/8.0/studio-user-guide/dynamic-schema)と[コンテキストグループを作成し、その中でコンテキスト変数を定義](https://help.qlik.com/talend/r/ja-JP/8.0/studio-user-guide/creating-context-group-and-define-context-variables-in-it)をご覧ください。 |
| 制限事項 | ストアドプロシージャーの構文は、データベースの構文とマッチしている必要があります。<br><br>このコンポーネントに設定したパラメーターが[Custom Type] (カスタムタイプ)のパラメーターである場合は、ユーザーがカスタムタイプパラメーターの値を定義するために、tJavaファミリーのコンポーネントをコンポーネントの前に置きます。または、Outタイプのカスタムパラメーターを読み取って出力するために、コンポーネントの後に置きます。 |

**関連概念**

* [ストアドプロシージャーを使って数値フォーマットをチェック](https://help.qlik.com/talend/ja-JP/components/8.0/oracle/toracleconnection-toracleinput-toraclesp-tlogrow-checking-number-format-using-stored-procedure-standard-component-the)