2011-07-12 55 views
4

我知道shp2pgsql位于postgresql目录中,但我不确定在此之后要使用哪些命令。我已经彻底阅读了手册,并且我知道shp2pgsql命令的所有参数和选项。我得到的错误:使用shp2pgsql转换形状文件

-bash: shp2pgsql: command not found 

它也许是权限问题?

+0

听起来像一个'PATH'问题​​。 '哪个shp2pgsql'显示它在哪里? –

+0

是的你是对的我把初始目录导出到$ PATH,它非常感谢你的输入。 – John

回答

0

解决方法是导出程序的路径并将其放入$ PATH变量中。 另一种选择是将命令移动到已包含在PATH中的目录中,例如/ usr/bin。



出口PATH = /库/ PostgreSQL的/ 9.0 /斌/:$ PATH


  1. 回声$ PATH找到的目录已经存在

  2. 进入该目录程序

  3. mv shp2pgsql/usr/bin例如
10

正确的命令是«shp2pgsql»,你有一个错字。

用例:

# shp2pgsql -c -D -s 4269 -I shaperoads.shp myschema.roadstable > roads.sql 
# psql -d roadsdb -f roads.sql 
  • -c创建表
  • -I上创建几何结构的指数
  • -D使用转储格式
  • -s指定投影SRID

您首先生成一个sql文件,然后加载到你的数据库中。

+0

对于输入错误仍然越来越感到遗憾:roads.sql:权限被拒绝 – John

+2

对于那些与shp2pgsql一起使用的线程,您还可以将'shp2pgsql'的输出直接传递给'psql',而不是保存中间SQL文件。上面的例子看起来像:'shp2pgsql -c -D -s 4269 -I shaperoads.shp myschema.roadstable | psql -d roadsdb'有关更多信息,请查看[Boston GIS shp2pgsql备忘单](http://www.bostongis.com/pgsql2shp_shp2pgsql_quickguide_20.bqg)。 –