From: | "N(dot) Can KIRIK" <n(dot)can(dot)kirik(at)gmail(dot)com> |
---|---|
To: | javanotlarim(at)gmail(dot)com |
Cc: | pgsql-tr-genel <pgsql-tr-genel(at)postgresql(dot)org> |
Subject: | Re: record dönüşlü bildirilmiş işlevde return deyimin tipi uyumsuz |
Date: | 2018-11-27 18:32:05 |
Message-ID: | CAJ1wP5m5Aqy590qPCFjedvZ1=y65cMKPzfUiwWNY1UJEmTbTjQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-tr-genel |
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 | Java Notlarım | 2018-11-27 19:09:45 | Re: record dönüşlü bildirilmiş işlevde return deyimin tipi uyumsuz |
Previous Message | Samed YILDIRIM | 2018-11-27 18:29:24 | Re: record dönüşlü bildirilmiş işlevde return deyimin tipi uyumsuz |