konto usunięte

Temat: Cursor Postgresql

Witam
Jak zrobić cursor na postgresql który na podstawie danych z tabeli xxx zrobi inserta do tabeli YYY. Na Oraclu wyglada to następujaco:

declare cursor c is
select id from xxx;
for r in c
loop
insert into yyy (id) values (r.id);
end loop;
commit;
Józef T.

Józef T. Informatyk

Temat: Cursor Postgresql

Nie lepiej po prostu skorzystać ze składni INSERT INTO ... (SELECT ... ) ?

konto usunięte

Temat: Cursor Postgresql

Józef Duplaga:
Nie lepiej po prostu skorzystać ze składni INSERT INTO ... (SELECT ... ) ?

Można było by ale wolałbym przez cursora
Tomasz M.

Tomasz M. never go full
retard!

Józef T.

Józef T. Informatyk

Temat: Cursor Postgresql

Aaa to jedynie mogę odesłać do odpowiedniego miejsca w dokumentacji

http://www.postgresql.org/docs/9.0/interactive/plpgsql...

konto usunięte

Temat: Cursor Postgresql

Oki dzieki. Rozwiazane
Irek Słonina

Irek Słonina programowanie, bazy
danych i linuksy

Temat: Cursor Postgresql

Jakub Suchocki:
Oki dzieki. Rozwiazane

Pochwal się.

konto usunięte

Temat: Cursor Postgresql

CREATE OR REPLACE FUNCTION uzycie_kursora()
RETURNS integer AS
$BODY$
DECLARE

c_laduj_dane CURSOR
IS
Select *
from lgpelt_temp.temp_tab_przyklad_use_cursor;

T_laduj_dane lgpelt_temp.temp_tab_przyklad_use_cursor%ROWTYPE; BEGIN

OPEN c_laduj_dane;
LOOP
FETCH c_laduj_dane INTO T_laduj_dane;
EXIT WHEN NOT FOUND;

INSERT INTO tab_przyklad_use_cursor(pk_id, tytul, data_utw)
VALUES(T_laduj_dane.pk_id, T_laduj_dane.tytul, (SELECT CURRENT_TIMESTAMP) );
END LOOP;

return 0;

EXCEPTION
WHEN unique_violation THEN
INSERT INTO exception_tab_przyklad_use(pk_id, tytul, data_utw, komunikat, timestamp)
VALUES(T_laduj_dane.pk_id, T_laduj_dane.tytul, T_laduj_dane.data_utw, 'unique_violation',(SELECT CURRENT_TIMESTAMP) );
RETURN 1;
END;
$BODY$
LANGUAGE plpgsql VOLATILE;
ALTER FUNCTION uzycie_kursora() OWNER TO lgpelt;

Następna dyskusja:

zapytanie w PostgreSQL




Wyślij zaproszenie do