Thread: Language SQL, But Need Return PlPgSql
Dear Expert;
Gimme your hand please,
I've been using function with "Language SQL" and combined with
"type" for the simply-one. Like this;
-------------------------------------
create type simply_1 as(
fc_name char(20),
fn_codedept integer,
fc_descdept char(30) );
Create function F_Simple(integer) returns setof d_4developer.ty_rep_coba as
' select a.fc_name, a.fn_codedept, b.fc_descdept
from Emplo_Corp a, Depart b
where a.fn_codedept = b.fn_codedept and
a.fn_codedept = $1;
' language SQL;
--------------------------------------
That's running pretty good. But now i have more complicated condition.
There are hundreds combination of reports must be handled by me and
most of all have the same result. If i still using style of "Language
SQL", that's means I will have to make function as much as my report.
I Tried Using style "Language PlPgSql" but I got a Fully Confused
about what a kind of RETURN i will use ??
-------------------------------------------------
Create or replace function MultiRpt(integer,char(1))
setof d_4developer.ty_rep_coba as
'begin
-- View Corporate's Employee
If $2 = ''C'' Then
select a.fc_name, a.fn_codedept, b.fc_descdept
from Emplo_Corp a, depart b
where a.fn_codedept = b.fn_codedept and
a.fn_codedept = $1;
End If;
-- View Branch'A' Employee
If $2 = ''A'' Then select a.fc_name, a.fn_codedept, b.fc_descdept
from Emplo_BRANCH_A a, depart b
where a.fn_codedept = b.fn_codedept and
a.fn_codedept = $1;
End If;
-- View Branch'B' Employee
If $2 = ''B'' Then select a.fc_name, a.fn_codedept, b.fc_descdept
from Emplo_BRANCH_B a, depart b
where a.fn_codedept = b.fn_codedept and
a.fn_codedept = $1;
End If;'
Return (-- ?? --)
end;' language PlPgSql;
-------------------------------------------------
Some advice will be helpfull. Thank's
GOD Bless You All and Bravo Postgres !!
Yudha Setiawan.
VoIP
No. : 628899911223344
VoIP
No. : 628899911223344
Refer to http://techdocs.postgresql.org/guides/SetReturningFunctions You'll need 7.3. Regards, Christoph
Is your problem finally solved? regds mallah. On Tuesday 08 Apr 2003 3:22 pm, Yudha Setiawan wrote: > Dear Expert; > Gimme your hand please, > I've been using function with "Language SQL" and combined with > "type" for the simply-one. Like this; > ------------------------------------- > create type simply_1 as( > fc_name char(20), > fn_codedept integer, > fc_descdept char(30) ); > > Create function F_Simple(integer) returns setof d_4developer.ty_rep_coba as > ' select a.fc_name, a.fn_codedept, b.fc_descdept > from Emplo_Corp a, Depart b > where a.fn_codedept = b.fn_codedept and > a.fn_codedept = $1; > ' language SQL; > -------------------------------------- > > That's running pretty good. But now i have more complicated condition. > There are hundreds combination of reports must be handled by me and > most of all have the same result. If i still using style of "Language > SQL", that's means I will have to make function as much as my report. > I Tried Using style "Language PlPgSql" but I got a Fully Confused > about what a kind of RETURN i will use ?? > ------------------------------------------------- > Create or replace function MultiRpt(integer,char(1)) > setof d_4developer.ty_rep_coba as > 'begin > -- View Corporate's Employee > If $2 = ''C'' Then > select a.fc_name, a.fn_codedept, b.fc_descdept > from Emplo_Corp a, depart b > where a.fn_codedept = b.fn_codedept and > a.fn_codedept = $1; > End If; > > -- View Branch'A' Employee > If $2 = ''A'' Then > select a.fc_name, a.fn_codedept, b.fc_descdept > from Emplo_BRANCH_A a, depart b > where a.fn_codedept = b.fn_codedept and > a.fn_codedept = $1; > End If; > > -- View Branch'B' Employee > If $2 = ''B'' Then > select a.fc_name, a.fn_codedept, b.fc_descdept > from Emplo_BRANCH_B a, depart b > where a.fn_codedept = b.fn_codedept and > a.fn_codedept = $1; > End If;' > Return (-- ?? --) > end;' language PlPgSql; > ------------------------------------------------- > > Some advice will be helpfull. Thank's > GOD Bless You All and Bravo Postgres !! > > > > Yudha Setiawan. > VoIP > No. : 628899911223344 -- Rajesh Kumar Mallah, Project Manager (Development) Infocom Network Limited, New Delhi phone: +91(11)6152172 (221) (L) ,9811255597 (M) Visit http://www.trade-india.com , India's Leading B2B eMarketplace.