ストアドプロシージャーを使用して数値フォーマットをチェックする - 7.3

Oracle

EnrichVersion
Cloud
7.3
EnrichProdName
Talend Big Data
Talend Big Data Platform
Talend Data Fabric
Talend Data Integration
Talend Data Management Platform
Talend Data Services Platform
Talend ESB
Talend MDM Platform
Talend Open Studio for Big Data
Talend Open Studio for Data Integration
Talend Open Studio for ESB
Talend Real-Time Big Data Platform
EnrichPlatform
Talend Studio
task
ジョブデザインと開発 > サードパーティーシステム > DBコンポーネント > Oracle
データガバナンス > サードパーティーシステム > DBコンポーネント > Oracle
データクオリティとプレパレーション > サードパーティーシステム > DBコンポーネント > Oracle

以下のジョブでは、社会保障番号(SSN)と氏名を含むOracleデータベースに接続し、標準の###-##-####形式に対してSSN形式をチェックするストアドプロシージャーを呼び出します。検証出力の結果として、有効な形式を示す1、正しくない形式を示す0が実行コンソールに表示されます。

Talendでサポートされているテクノロジーの詳細は、Talendコンポーネントを参照してください。

  • [Palette] (パレット)から次のコンポーネントをドラッグ&ドロップします: tOracleConnectiontOracleInputtOracleSP、およびtLogRow

  • ここではデータは処理されないため[Then Run] (次に実行)接続を使用して、tOracleConnectiontOracleInputにリンクします。

  • さらに、[Row Main] (行メイン)リンクを使用してもう一方のコンポーネントを接続し、行がパラメーターとしてSPコンポーネントおよびコンソールに渡されるようにします。

  • tOracleConnectionで、関連するデータベースの接続の詳細を定義します。こうすることで、この情報を他のすべてのDB関連コンポーネントで再利用できるようになります。

  • 次に、tOracleInputを選択し、プロパティを定義します。

  • 既に設定されている接続の詳細を再利用するには、[Use an existing connection] (既存の接続の使用)チェックボックスをオンにし、リストのtOracleConnectionコンポーネントを選択します。

  • OracleスキーマはリポジトリーのDB Oracle接続エントリーで定義されているため、[Property type] (プロパティタイプ) として[Repository] (リポジトリー) を選択します。Oracle DBの詳細を[Repository] (リポジトリー)に記録していない場合は、 スキーマ名を手動で入力します。

  • 次に、[Repository] (リポジトリー)[Schema] (スキーマ)として選択し、Oracle DBテーブルに対応する関連スキーマを取得します。

  • このサンプルでは、SSNテーブルに、IDNAMECITY、およびSSNUMBERを含む、カラム4つのスキーマがあります。

  • [Query] (クエリー)フィールドで、次の選択クエリーを入力するか、リポジトリーに保管されている場合はリストで選択します。

    select ID, NAME, CITY, SSNUMBER from SSN

  • 次に、tOracleSPを選択し、[Basic settings] (基本設定)を定義します。

  • tOracleInputコンポーネントの場合と同様に、[Property type] (プロパティタイプ)フィールドで[Repository] (リポジトリー)を選択し、[Use an existing connection] (既存の接続を使用する)チェックボックスをオンにします。次に、該当するエントリをそれぞれのリストから選択します。

  • tOracleSPに使用されるスキーマは、 入力スキーマと若干異なります。実際には、カラム([SSN_Valid])が1列入力スキーマに追加されます。このカラムには、プロシージャーで生成されたフォーマットの有効性ステータス(1または0)が保持されます。

  • [SP Name] (SP名)フィールドに、データベースで呼び出されるストアドプロシージャー(または関数)の正確な名前を入力します。このユースケースでは、ストアドプロシージャー名は[is_ssn]になります。

  • この具体例で使用される基本的な関数は以下のとおりです:

    CREATE OR REPLACE FUNCTION is_ssn(string_in VARCHAR2)
    RETURN PLS_INTEGER
    IS
    -- validating ###-##-#### format
    BEGIN
      IF TRANSLATE(string_in, '0123456789A', 'AAAAAAAAAAB') =
         'AAA-AA-AAAA' THEN
        RETURN 1;
      END IF;
      RETURN 0;
    END is_ssn;
    /
  • このユースケースでは戻り値が予想され、プロシージャーは関数として機能するため、[Is function]チェックボックスをオンにします。

  • 予想される唯一の戻り値は、[ssn_valid]カラムをベースとしているため、関連するリストエントリーを選択します。

  • [Parameters] (パラメーター)エリアで、プロシージャーに使用する入力および出力パラメーターを定義します。このユースケースでは、スキーマの[SSNumber]カラムのみがプロシージャーで使用されます。

  • プラス記号をクリックしてテーブルにカラムを追加し、関連するカラム ([SSNumber])およびタイプ([IN])を選択します。

  • 次に、tLogRowコンポーネントを選択し、[カラムの同期]をクリックして、スキーマが先行するtOracleSPコンポーネントから渡されていることを確認します。

  • [Print values in cells of a table] (テーブルのセルに値を印刷)チェックボックスをオンにすると、出力結果を読みやすくできます。

  • 次に、ジョブを保存し、 [F6]を押して実行します。

コンソールで、出力結果を読み取ることができます。ストアドプロシージャーのパラメーターとして使用されていない場合でも、すべての入力スキーマカラムが表示されます。

最後のカラムは、チェックされているSS番号が有効かどうかにかかわらず、予想される戻り値を示します。

注:

データベーステーブルまたはDBクエリーから一連のレコードを分析し、単一のレコードを返す場合は、マザー/ドーターテーブルにデータを挿入するをチェックします。