help needed for functions

Started by Nitin Ahireover 20 years ago3 messagesgeneral
Jump to latest
#1Nitin Ahire
nitin_eluminous@yahoo.com

Hello All,

I am new to postgresql database.
I am transferring current database from mssql database to postgresql 7.4

I am facing problems for stored procedures. Is their any way so that I can transfer my existing stored procedure from mssql to postgre ?

I already read about functions & tried to implement it but I could not found any way to get multiple columns from a function.
Also I would like to get help about selecting values from two tables using function.

Thanks
Nitin

__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com

#2Dinesh Pandey
dpandey@secf.com
In reply to: Nitin Ahire (#1)
Re: help needed for functions

Yes, you can use "SETOF" for multiple records.

See Examples

-------------------------------------------

CREATE TABLE department(id int primary key, name text);

CREATE TABLE employee(id int primary key, name text, salary int,
departmentid int references department);

-----------------------------------------------------------------

INSERT INTO department values (1, 'Management');

INSERT INTO department values (2, 'IT');

INSERT INTO employee values (1, 'John Smith', 30000, 1);

INSERT INTO employee values (2, 'Jane Doe', 50000, 1);

INSERT INTO employee values (3, 'Jack Jackson', 60000, 2);

-----------------------------------------------------------------

CREATE OR REPLACE FUNCTION GetEmployees()

RETURNS SETOF employee

AS

'select * from employee;'

LANGUAGE 'sql';

-----------------------------------------------------------------

CREATE TYPE HOLDER AS (departmentid int, totalsalary int8);

-----------------------------------------------------------------

CREATE or replace FUNCTION SqlDepartmentSalaries()

RETURNS SETOF holder

AS

'

select departmentid, sum(salary) as totalsalary from GetEmployees() as a
group by departmentid

'

LANGUAGE 'sql';

----------------------------

select * from SqlDepartmentSalaries();

-----------------------------------------------------------------

--We can do the same in PLPGSQL in this way.

CREATE OR REPLACE FUNCTION PLpgSQLDepartmentSalaries()

RETURNS SETOF holder

AS

'

DECLARE

r holder%rowtype;

BEGIN

FOR r in select departmentid, sum(salary) as totalsalary from
GetEmployees() group by departmentid

LOOP

return next r;

END LOOP;

RETURN;

END

'

LANGUAGE 'plpgsql';

-----------------------------------------------------------------

Thanks
Dinesh Pandey

_____

From: pgsql-general-owner@postgresql.org
[mailto:pgsql-general-owner@postgresql.org] On Behalf Of Nitin Ahire
Sent: Friday, September 16, 2005 7:21 PM
To: pgsql-general@postgresql.org
Subject: [GENERAL] help needed for functions

Hello All,

I am new to postgresql database.

I am transferring current database from mssql database to postgresql 7.4

I am facing problems for stored procedures. Is their any way so that I can
transfer my existing stored procedure from mssql to postgre ?

I already read about functions & tried to implement it but I could not found
any way to get multiple columns from a function.

Also I would like to get help about selecting values from two tables using
function.

Thanks

Nitin

__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com

#3A. Kretschmer
akretschmer@despammed.com
In reply to: Nitin Ahire (#1)
Re: help needed for functions

am 16.09.2005, um 6:51:16 -0700 mailte Nitin Ahire folgendes:

I am facing problems for stored procedures. Is their any way so that I
can transfer my existing stored procedure from mssql to postgre ?

I guess: no.

I already read about functions & tried to implement it but I could not
found any way to get multiple columns from a function. Also I would

http://techdocs.postgresql.org/guides/SetReturningFunctions
http://www.postgresql.org/docs/current/static/xfunc-sql.html#AEN28835

Read this links!

like to get help about selecting values from two tables using
function.

Where exactly is the problem?

Regards, Andreas
--
Andreas Kretschmer (Kontakt: siehe Header)
Heynitz: 035242/47212, D1: 0160/7141639
GnuPG-ID 0x3FFF606C http://wwwkeys.de.pgp.net
=== Schollglas Unternehmensgruppe ===