1

Temat: Dwie bazy - procedura w jednej, dane w drugiej

Mam "Bazę Danych A" z której mogę czytać dane.
I chociaż technicznie mógłbym w niej coś stworzyć/ dopisać, to jednak producent systemu na to nie pozwala.

Więc mam pytanie.
Czy istnieje taka możliwość aby stworzyć "Drugą Bazę B", dodać do niej procedurę i aby ta procedura mogła się odwoływać do "Bazy A" i czytać z niej dane ?

2

Odp: Dwie bazy - procedura w jednej, dane w drugiej

musisz doinstalować do bazy dblink z contriba i za pomocą napisanej funkcji w bazie B pobierać dane z bazy A. Sposób użycia dblink masz poniżej

SELECT * FROM dblink('hostaddr=ip_serwera port=5432 dbname=baza_a user=user_name password=haslo', '
SELECT id, FROM tabela;')
      AS tabela (id integer);

3

Odp: Dwie bazy - procedura w jednej, dane w drugiej

OK.
A w jaki sposób zainstalować dblink na Windowsie XP.
Mam postgresa 8.4 i jak odpalam "stack builder" to nie widzę dblinka.

Ostatnio edytowany przez tomek (2013-04-30 11:13:15)

4

Odp: Dwie bazy - procedura w jednej, dane w drugiej

tworzysz Bazę B
i odpalasz skrypt dblink--1.0.sql, który powinien być w katalogu bazy w podkatalogu ...\share\extension

PS pamiętaj, że musisz logować się do bazy A loginem i hasłem, które  istnieje na bazie A

5

Odp: Dwie bazy - procedura w jednej, dane w drugiej

Nieeee. Nigdy nie odpalajcie skryptów cośtam-dwa-minusy-cośtam.sql, które są w ...\extension.

One powinny być ładowane poprzez:

create extension ...;

np.:

create extension dblink;

Kiedyś, zanim dodane zostały "extensions", i były po prostu moduły contriba, faktycznie trzeba było ręcznie ładować sql. ale to już przeszłość i zdecydowanie zły pomysł teraz.

--
The best thing about modern society is how easy it is to avoid contact with it.

6

Odp: Dwie bazy - procedura w jednej, dane w drugiej

Tak dla porządku create extension jest o ile pamiętam dostępne od wersji 9 postgresql-a, a w Tomek pisze, że ma wersje 8.4, ale uwaga depesza jak najbardziej na miejscu, fakt że ścieżkę dostępu podawałem z wersji 9 wiec OK - moja pomyłka smile

7

Odp: Dwie bazy - procedura w jednej, dane w drugiej

Dzięki, działa :-)

A dla postgresa 8.4:
katalog_postgresa/share/contrib/dblink.sql