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

From: Java Notlarım <javanotlarim(at)gmail(dot)com>
To: pgsql-tr-genel(at)postgresql(dot)org
Subject: Fwd: record dönüşlü bildirilmiş işlevde return deyimin tipi uyumsuz
Date: 2018-11-27 18:04:25
Message-ID: CAG=rH2WOfA8QuqPFRv79pOsdw2o_oKO_mCdNW9iu91dk0UgUbw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-tr-genel

---------- 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 Samed YILDIRIM 2018-11-27 18:29:24 Re: record dönüşlü bildirilmiş işlevde return deyimin tipi uyumsuz
Previous Message Samed YILDIRIM 2018-11-27 17:11:16 Re: record dönüşlü bildirilmiş işlevde return deyimin tipi uyumsuz