From: | Java Notlarım <javanotlarim(at)gmail(dot)com> |
---|---|
To: | pgsql-tr-genel(at)postgresql(dot)org |
Subject: | Re: record dönüşlü bildirilmiş işlevde return deyimin tipi uyumsuz |
Date: | 2018-11-27 19:09:45 |
Message-ID: | CAG=rH2WnZL=bGp+EGeoounnyH5p99fun9QbT7tWZUSpoHeF7PQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-tr-genel |
Değerli zamanınızdan ayırıp cevap verdiğiniz için çok teşekkür ederim Samed
bey ve Can bey.
Detaylı cevabınızı kendime uyarladım ve sorun çözüldü Samed bey.
İyi çalışmalar diliyorum
N. Can KIRIK <n(dot)can(dot)kirik(at)gmail(dot)com>, 27 Kas 2018 Sal, 20:32 tarihinde şunu
yazdı:
> merhabalar,
>
> array_agg metin dönen string_agg'den farklı olarak doğrudan dizi döndüğü
> için ikinci parametre almıyor. ikinci parametreyi yani ',' ifadesini
> kaldırırsanız sorun yaşamazsınız.
>
> iyi çalışmalar.
>
> *N. Can KIRIK*
>
>
> On Tue, Nov 27, 2018 at 9:04 PM Java Notlarım <javanotlarim(at)gmail(dot)com>
> wrote:
>
>>
>>
>> ---------- Forwarded message ---------
>> From: Java Notlarım <javanotlarim(at)gmail(dot)com>
>> Date: 27 Kas 2018 Sal, 20:02
>> Subject: Re: record dönüşlü bildirilmiş işlevde return deyimin tipi
>> uyumsuz
>> To: <samed(at)reddoc(dot)net>
>>
>>
>> Merhaba, öncelikle ilginiz ve yardımınız için çok teşekkür ederim.
>> Can Bey; ARRAY_AGG kullandığımda "array_agg(text, unknown) fonksiyonu
>> mevcut değildir" uyarısı aldım.
>>
>> Samed bey; Postgresql 10 versiyonunu kullanıyorum. Tablolarım ve örnek
>> verileri excel tablosundan kopyalayıp yapıştırdım, umarım mail içeriğinde
>> sorun olmaz.
>>
>> tbl_detay
>> İd – bigint master_id – integer evrak_no – text yer_id_array - smallint
>> []
>> 1 12 12ilerd {3,2,4}
>> 2 1 abcd78 {2,5}
>> 3 1 yyy5 {1.2}
>>
>> tbl_std_yer
>> İd – integer yer_adi - text
>> 1 Denizli
>> 2 İzmir
>> 3 İstanbul
>> 4 Ankara
>> Function sonucu istenilen
>> İd – bigint master_id – integer evrak_no – text yer_adlari
>> 1 12 12ilerd {İstanbul,İzmir,Denizli}
>> 2 1 abcd78 {İzmir,Bursa}
>> 3 1 yyy5 {Denizli.İzmir}
>>
>> Samed YILDIRIM <samed(at)reddoc(dot)net>, 27 Kas 2018 Sal, 19:11 tarihinde şunu
>> yazdı:
>>
>>> Merhabalar,
>>>
>>> Tabloların (tbl_detay ve tbl_std_yer) kolon yapılarını (create
>>> cümlecikleri de olur), birkaç satırlık örnek veri ve kullandığınız
>>> PostgreSQL versiyonunu da ekler misiniz.
>>>
>>> İyi çalışmalar.
>>> Samed YILDIRIM
>>>
>>>
>>>
>>> 27.11.2018, 19:56, "Java Notlarım" <javanotlarim(at)gmail(dot)com>:
>>>
>>> Merhaba.
>>> Tablomda smallint array tipinde bir alanım mevcut. Bu alandaki verileri
>>> çekerken, smallint değerleri yerine, bu smallint değerlerin string
>>> karşılıkları ile çekmek için, JOIN kullanarak bir sorgu yazdım. Bu sorgu
>>> normalde sorunsuz çalışırken, sorguyu function (Stored Procedure) olarak
>>> yazmaya çalıştığımda
>>>
>>> *"ERROR: HATA: record dönüşlü bildirilmiş işlevde return deyimin tipi
>>> uyumsuz AYRINTI: Son ifade 3 sütununda text[] yerine text döndürüyor."*
>>> şeklinde bir hata alıyorum. Aldığım hata ile ilgili çözüm öneriniz
>>> olursa çok memnun olurum.
>>> Functionum aşağıdaki gibi
>>>
>>>
>>> CREATE OR REPLACE FUNCTION sp_list_abc(
>>>
>>> IN sp_master_id integer,
>>>
>>> OUT sp_id bigint,
>>>
>>> OUT sp_evrakno text,
>>>
>>> OUT sp_yer_adi_array text[])
>>>
>>> RETURNS SETOF record
>>>
>>> LANGUAGE 'sql'
>>>
>>>
>>>
>>> COST 100
>>>
>>> VOLATILE
>>>
>>>
>>>
>>> AS $BODY$
>>>
>>>
>>>
>>> select ed.id, ed.evrak_no,STRING_AGG(syer.yer_adi, ', ')
>>>
>>> from tbl_detay ed
>>>
>>> LEFT JOIN tbl_std_yer syer on syer.id=ANY(ed.yer_id_array)
>>>
>>> where ed.master_id=$1
>>>
>>> GROUP BY ed.id, syer.yer_adi
>>>
>>>
>>>
>>> $BODY$;
>>>
>>>
From | Date | Subject | |
---|---|---|---|
Next Message | Tolga Tat | 2018-11-29 15:55:04 | Oracle'dan Postgre'ye göc |
Previous Message | N. Can KIRIK | 2018-11-27 18:32:05 | Re: record dönüşlü bildirilmiş işlevde return deyimin tipi uyumsuz |