I simply have a table that contains a list of countries and their ISO country codes. I\'m wrapping the query in a stored procedure (aka function) such as:
CREAT
There is also the option of using RETURNS TABLE(...)
(as described in the PostgreSQL Manual), which I personally prefer:
CREATE OR REPLACE FUNCTION get_countries()
RETURNS TABLE(
country_code text,
country_name text
)
AS $$
SELECT country_code, country_name FROM country_codes
$$ LANGUAGE sql;
This is effectively the same as using SETOF tablename
, but declares the table structure inline instead of referencing an existing object, so joins and such will still work.
You should be able to use output parameters, like this:
CREATE OR REPLACE FUNCTION get_countries(country_code OUT text, country_name OUT text)
RETURNS setof record
AS $$ SELECT country_code, country_name FROM country_codes $$
LANGUAGE sql;