Re: record dönüşlü bildirilmiş işlevde return deyimin tipi uyumsuz

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$;
>>
>>

In response to

Responses

Browse pgsql-tr-genel by date

  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