From: | "Lathika Wijerathne" <lathika(at)rezgateway(dot)com> |
---|---|
To: | <pgsql-admin(at)postgresql(dot)org> |
Subject: | User Define Functions |
Date: | 2005-07-27 05:51:28 |
Message-ID: | 20050726224915.55373F6D@dm16.mta.everyone.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-admin |
Hi,
I have created the database with 3 schemas.
Example : Schema names : Newyorlk, Atlanta,California
Each schema has a similar tables. But there can be schema specific tables
too.
I want to create a user define functions to retrieve information.
----------------------------------------------------------------------
CREATE OR REPLACE FUNCTION Newyorlk.get_customer_name (custid integer,
invoice integer)
RETURNS varchar AS
$$
DECLARE
m_display varchar (100);
m_status varchar(10);
BEGIN
SELECT cname INTO m_display from Newyorlk.CUSTOMER
WHERE id = custid;
SELECT status INTO m_status from Newyorlk.CUSTOMER_INVOICE
WHERE id = invoice;
m_display := m_display||'-'|| m_status ;
RETURN m_display;
END;
$$
LANGUAGE 'plpgsql' VOLATILE;
--------------------------------------------------------------------
In the above function if I change Newyorlk.CUSTOMER to CUSTOMER . It gives
a runtime error saying table not available.
I think when I remove the schema name, posgresSql checks the table in the
public schema.
But in Oracle, when we give the schema name with the function name, it
assumes all the objects within the functions are referring to that schema.
Do you know any other way to do a user define function, without hard cording
schema name each time when referring to a table.
Thanks in Advance
Lathika
From | Date | Subject | |
---|---|---|---|
Next Message | Gnanavel S | 2005-07-27 07:08:49 | Re: User Define Functions |
Previous Message | Simon Riggs | 2005-07-26 22:22:34 | Checkpoint segments |