動的バルクデータ転送のロー・カラムを使用して、Oracleピボット機能

企業のビジネス要件は、大量のデータの数を行う必要がターンした後、列の動的挙動を解析するために、ピボット機能は、サブクエリで使用することができない、長い時間を探して、インターネット上で動的SQLのステッチを介して達成することができると言うする方法があります自分自身の現実で探索するための具体的な方法を見つけることができませんした後。次のように具体的な方法があります。

動的な行転送列を達成する必要があるため、()は、文字列のCLOBフィールドに変換され、次いでDBMS_LOB.SUBSTR、個々の列名を検出するwm_concat(別個の())関数を使用する必要があります。次に照会する動的なモザイク列名を来ります。結果は、あなたが直接それを必要とする表を確認することができます保存されたクエリビューを構築します。具体的なコードは次のよう:

PROCEDURE P_FXJG AS 
     
    v_LM          VARCHAR22000 ); 
    vs_sql         VARCHAR26000 )。
    vs_sql1        VARCHAR26000 )。  
  
  BEGIN 
  
    :vs_sql1 =  ' B_CLB aからINSERT INTO LS_TEMP選択DBMS_LOB.SUBSTR(wm_concat(異なる(SF))を)   ' ;
    実行即時vs_sql1を。
  
    
    SELECT SFBM INTO V_LM FROM LS_TEMPを。
  
    vs_sql:=  "(中にSFのために(B_CLBからa.YH、a.MC、a.LX "BZ"、a.SF、a.JGを選択a)のピボット(合計(JG)SELECT * FROMとしてビューV_FXJGを作成したり、交換してください"  || 
              V_LM ||  ' ))' ;
    実行即時vs_sqlを。
    
  END ;

 

おすすめ

転載: www.cnblogs.com/my-fishking/p/11230803.html