2010-06-15 79 views
1

在PHP內部我做:臨時表問題

1.)創建一個臨時表:CREATE TEMP TABLE new_table AS SELECT .... FROM ...;

2)之後,我想用這個表來創建一個形狀文件:了shell_exec(「pgsql2shp .... -u用戶名-p密碼...);

Separetly這兩件事情的工作,但通過創建一個臨時表,然後在pgsql2shp中使用這個表不起作用我之所以這樣做是因爲臨時表的持續時間到了會話結束但是爲了創建shp文件我需要使用用戶名和密碼這意味着新的會話開始之前,我用它來創造形體臨時表被刪除。

任何提示怎麼解決呢?

比你呢!

回答

3

是的,臨時表將在會話結束時或可選地在事務結束時被刪除。一般來說,你不能將它們傳遞給另一個進程。

創建一個真正的表,通過粘貼一個id給它一個獨特的名稱,並在運行形狀創建後刪除表。

如果您不能更改pgsql2shp程序,則可以將其包裝在腳本中,然後調用它。但是,您應該能夠將表的名稱傳遞給pgsql2shp程序。

你不能在pgsql2shp程序中運行查詢嗎?

作爲替代方案,/ tmp文件夾中不起眼的flatfile也可以很好地工作。

+0

我沒有發現我可以在pgsql2shp中使用查詢... – Z77 2010-06-15 10:23:20