PostgreSql中的dblink功能用於通過當前資料庫環境訪問遠端資料庫資料,當然前提您必需有遠端資料庫的存取權限,它同Oracle中的dblink有相似的功能。
Windows環境下配置dblink其實要比在linux下簡單一些,因為在您安裝完PostgreSql後,在您的安裝目錄的PostgreSQL/8.1/lib目錄下已經存在有dblink.dll檔案(相當於linux下的dblink.so檔案),這是使用dblink所必需的函數檔案,當然在linux環境下您可以通過以下方式建立.so檔案:
#cd contrib/dblink
#make
#make install
接下來的工作就是要在您需要遠端存取其它DataBase的資料庫中匯入dblink的函數了,這些函數官方已經為您寫好了,就是存放在PostgreSQL/8.1/share/contrib目錄下的dblink.sql檔案,您只需要進入PostgreSql命令列執行如下語句:
... ...bin>psql -d [資料庫名] -f[sql檔案名稱(即dblink.sql檔案的路徑+名稱)]
就可以了,好了,如果看到一串 CREATE FUNCTION 那就說明成功了,接下來就是去感受一下dblink的功能了
(以下部分為網路摘抄)
下面進入psql:
pgsql=# select dblink_connect('host=localhost user=pgsql password=');
dblink_connect
----------------
OK
(1 row)
這個函數用來建立到遠端資料庫的串連。
我們可以像這樣想遠端資料庫中insert一條記錄:
pgsql=# select dblink_exec('insert into student values(/'linux_prog/',/'12345/')');
dblink_exec
-------------------
INSERT 22516276 1
(1 row)
現在我們檢索我們剛才insert的記錄:
pgsql=# select * from dblink('select * from student') as student(name varchar(100),pass varchar(100));
name | pass
------------+-------
linux_prog | 12345
(1 row)
怎麼樣?剛才insert的記錄已經在裡面了。
dblink的功能非常強大,我上面列舉的只是他的最簡單的應用。大家可以參考PostgreSQL的source code下面:
contrib/dblink/sql/dblink.sql仔細看一下。