从postgresql 8.01+ postgis 1.0 的数据拷贝到postgresql 7.4.7+ postgis 1.0上,
使用POSTGIS提供的pl程序不成功,后来试验最初的版本,虽然提示有些错误,但还是成功转移了数据。
pg_dump -f dumpfile.sql yourdatabase
dropdb yourdatabase
createdb yourdatabase
createlang plpgsql yourdatabase
psql -f lwpostgis.sql -d yourdatabase
psql -f dumpfile.sql -d yourdatabase
vacuumdb -z yourdatabase
注意,在使用中文时,尽量使用UNICODE编码
createdb -E unicode databasename
使用PSQL导入数据表,在EUC_CN的数据库可以导入,但有的数据表对UNICODE的数据库导入时,出现错误提示:“Unicode Characters greater then 0X10000 is not supported”,导入失败。
你的postgis版本低了,请下载最新的POSTGIS版本。
我原来好像也遇到过这个问题,后来通过升级解决了。
或者, createdb -E utf8 dbname
这样试验一下看看
两种方法都试过了,问题依旧。
问题解决:
1、用shp2pgsql命令从Shape文件生成sql语句之后,在sql文件的最前面加上“\encoding GBK”这一行,以便向psql命令指示这个sql文件编码是GBK(标准的中文编码),psql就可以执行GBK->Unicode的编码转换了
2、用psql命令将sql形式的数据导入数据库。