2015-09-11 83 views
0

是否有辦法將所有表格數組類型轉換爲全部相同類型。在這種情況下像generic_array類型?我試圖返回字母順序沒有任何愚蠢,但首先我需要將所有數組轉換爲相同的類型。然後將Oracle表格數組類型轉換爲單個表格數組類型

declare 
      type type1_array is table of varchar2(80); 
      type type2_array is table of varchar2(80); 
      type type3_array is table of varchar2(80); 
      type generic_array is table of varchar2(80); 

      TableType1 type1_array DEFAULT type1_array(); 
      TableType2 type2_array DEFAULT type2_array(); 
      TableType3 type3_array DEFAULT type3_array(); 
      TableTypeGeneric generic_array DEFAULT generic_array(); 

begin   
      TableType1 := type1_array ('a', 'b', 'c', 'd', 'e', 'k', 'f', 'g', 'h', 'i'); 
      TableType2 := type2_array ('c', 'd', 'f', 'h', 'i', 'j', 'm'); 
      TableType3 := type3_array ('j', 'l', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'); 

      TableTypeGeneric := cast(type1_array as generic_array) union cast(type2_array as generic_array) union cast(type3_array as generic_array); 

end; 

回答

1

宣稱是從一開始就同類型:

DECLARE 
    TYPE Varchar2_Array IS TABLE OF VARCHAR2(80); 

    array1 Varchar2_Array := Varchar2_Array('a', 'b', 'c', 'd', 'e', 'k', 'f', 'g', 'h', 'i'); 
    array2 Varchar2_Array := Varchar2_Array('c', 'd', 'f', 'h', 'i', 'j', 'm'); 
    array3 Varchar2_Array := Varchar2_Array('j', 'l', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'); 
    array4 Varchar2_Array; 
BEGIN 
    array4 := array1 MULTISET UNION DISTINCT array2 MULTISET UNION DISTINCT array3; 
END; 
+0

它的工作,但遺留代碼阻止我現在從固定的,所以我正在尋找一個解決辦法。 – RetroCoder

+0

我只用一種類型來執行統計操作,然後將它們複製回三個數組中。 – RetroCoder

相關問題