Обсуждение: Re: Migrate Store Procedure Sybase to PostgreSQL
In article <23aa5c00.0112190638.2f919e52@posting.google.com>, Yamil Bendek wrote: > yibendek@ubiquando.com.co (Yamil Bendek) wrote in message news:<23aa5c00.0112181417.5265270a@posting.google.com>... > > I need to migrate a Sybase Database to PostgreSQL, In the Sybase DB we > have store procedure that return result Sets, how can i to migrate > these store procedure????????? you could try storing the result in a tmp table and returning the name of the table. I dont think you can return a result set from a stored procedure. good luck marc > > >> is it possible to create or to write store procedures that return a >> Result Set of a Query? How, Please ? >> >> Similar to the store procedures of sybase >> >> Example sybase : >> >> create procedure sp_sv44InfCiudades @s_cod_pais smallint as >> SELECT ciudades.cciu_codigo_iata, >> ciudades.vciu_nombre_ciudad, >> paises.vpai_nombre_pais >> FROM ciudades, >> paises >> WHERE ( paises.spai_codigo_pais = ciudades.sciu_codigo_pais ) and >> ( paises.spai_codigo_pais = @s_cod_pais ) >> ORDER BY ciudades.vciu_nombre_ciudad ASC >> >> >> >> >> >> return multiple rows and columns >> >> that is possible in postgeSQL ?
Marc Spitzer wrote: > Yamil Bendek wrote: >> I need to migrate a Sybase Database to PostgreSQL, In the Sybase DB we >> have store procedure that return result Sets, how can i to migrate >> these store procedure????????? > > you could try storing the result in a tmp table and returning the > name of the table. I dont think you can return a result set from > a stored procedure. Somewhere in documentation I found that it could return one column from SQL function, but that's all it can do. What a shame. Anyway, it's a design flaw that needed to be fixed a long time ago. I hope it it will be done in v7.2 (it would be nice to hear some developer here too). -- Marius Žalinauskas
There are various workarounds, depending on what you
are trying to achieve. Does the following look
promising to you?
jeff=# \d test
Table "test"
Attribute | Type | Modifier
-----------+---------+-------------------------------------------------
id | integer | not null default
nextval('"test_id_seq"'::text)
stuff | text |
Index: test_id_key
jeff=# select * from test;
id | stuff
----+-----------
1 | this
2 | that
3 | the_other
(3 rows)
jeff=# \! more test_func
drop function test();
create function test() returns text as '
declare
output text := '''';
each_line test%ROWTYPE;
begin
for each_line in select * from test loop
output := output || cast (each_line.id as text) ||
chr(9) || each_line.stuff || chr(10);
end loop;
return output;
end;
' language 'plpgsql';
jeff=# \a
Output format is unaligned.
jeff=# select test();
test
1 this
2 that
3 the_other
(1 row)
jeff=# \q
jeff@akira=> psql -A -c "select test()" -d jeff
test
1 this
2 that
3 the_other
(1 row)
--- Marius �alinauskas <mariusz@delfi.lt> wrote:
> Marc Spitzer wrote:
> > Yamil Bendek wrote:
> >> I need to migrate a Sybase Database to
> PostgreSQL, In the Sybase DB we
> >> have store procedure that return result Sets, how
> can i to migrate
> >> these store procedure?????????
> >
> > you could try storing the result in a tmp table
> and returning the
> > name of the table. I dont think you can return a
> result set from
> > a stored procedure.
>
> Somewhere in documentation I found that it could
> return one column from SQL
> function, but that's all it can do. What a shame.
>
> Anyway, it's a design flaw that needed to be fixed a
> long time ago. I hope
> it it will be done in v7.2 (it would be nice to hear
> some developer here
> too).
>
> --
> Marius �alinauskas
>
> ---------------------------(end of
> broadcast)---------------------------
> TIP 3: if posting/reading through Usenet, please
> send an appropriate
> subscribe-nomail command to majordomo@postgresql.org
> so that your
> message can get through to the mailing list cleanly
__________________________________________________
Do You Yahoo!?
Send your FREE holiday greetings online!
http://greetings.yahoo.com