Selamlar Cem Bey,
 
PostgreSQL'de class_mapping_tab şeklinde Oracle'e daki gibi yeni bir veritipi yaratmaya gerek yok. class_mapping'i doğrudan bir dizi olarak kullanabilirsiniz. Fonksiyon içerisindeki örnek bir kullanım aşağıdaki gibi olabilir.
 
CREATE TYPE class_mapping AS
   (id bigint,
    klasse bigint,
    text character varying(500)
   );
 
create or replace function set_c_arr() returns class_mapping[] as
$$
DECLARE
  c_arr class_mapping[];
BEGIN
  FOR I IN 1..10 LOOP
    c_arr[I] := ROW(I,I*10,'Test verisi');
  END LOOP;
  RETURN c_arr;
END;
$$
language plpgsql;
 
select * from unnest(set_c_arr());
 
Yukarıdaki select sorgusunun çıktısı aşağıdaki gibi olacaktır.
 
 
İyi çalışmalar.
Samed YILDIRIM
 
 
 
29.12.2016, 12:42, "Cem Kücük" <bcemkucuk@gmail.com>:
Selam arkadaslar,
 
asagidaki oracle dan migrate edilmis iki custom tip var..
 
oracle
--------------

create or replace
TYPE CLASS_MAPPING_TAB IS TABLE OF class_mapping;

create or replace
TYPE CLASS_MAPPING IS OBJECT (
   ID                NUMBER,
   klasse            NUMBER,
   text              VARCHAR2 (500 CHAR)
);

 
postgres:
--------------------------
TYPE class_mapping_tab AS
   class_mapping_tab class_mapping[];
 
TYPE CLASS_MAPPING IS OBJECT (
   ID                NUMBER,
   klasse            NUMBER,
   text              VARCHAR2 (500 CHAR)
);

Sizce bu ne kadar dogru bir konvert ?


class_mapping_tab nasil set edebilirim ?
 
asagidaki gibi olmadi
..
 tmpval          RECORD;
 retval          class_mapping_tab;
 retval := array[ ROW(tmpval.ID, tmpval.klasse, tmpval.text) :: class_mapping)]; 
..

 
saygilar,
kuecuek