[求助 ]Postgresql pg_dump的问题_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
7
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 4572 | 回复: 6   主题: [求助 ]Postgresql pg_dump的问题        下一篇 
茶香2222
注册用户
等级:上尉
经验:688
发帖:10
精华:0
注册:2015-11-18
状态:离线
发送短消息息给茶香2222 加好友    发送短消息息给茶香2222 发消息
发表于: IP:您无权察看 2015-12-7 14:30:38 | [全部帖] [楼主帖] 楼主

请教一下各位大大:

 

我在导出 postgresql 时,使用了 pg_dump -a -D 这两个参数(data only, insert mode)来导出

 

得到的结果会是像这样

INSERT INTO xxxtable (xxxcolumn) VALUES ('xxxdata')

 

但遇到两个问题,会造成汇入其他资料数据库失败

1. 栏位 xxxcolumn 若遇到(role, type...之类)关键字会被加上双引号 (google只查到postgresql7.4版可以使用参数-n去掉,但我是用8.1版,该参数已经被换掉了)

example:

INSERT INTO xxxtable ("xxxcolumn") VALUES ('xxxdata')

 

2. xxxdata 字符串的值有些会被加上一个E符号

example:

INSERT INTO xxxtable ("xxxcolumn") VALUES (E'xxxdata') 





赞(0)    操作        顶端 
蜀山战纪
版主
等级:中校
经验:2051
发帖:38
精华:6
注册:2015-10-23
状态:离线
发送短消息息给蜀山战纪 加好友    发送短消息息给蜀山战纪 发消息
发表于: IP:您无权察看 2015-12-7 14:39:14 | [全部帖] [楼主帖] 2  楼

1.PostgreSQL7.4&8.1的文件上pg_dumppsql都有"-n",说明看来都不像是你说的功能,7.4pg_restore没有”-n“也不是,请问你的参考来源是?

另外,column name用双引号在M$Oracle依参考来源应该都是可用的,你汇入的database是那家的?有错误讯息吗?

 

2.PostgreSQL自家的extension,这看来要改。

http://www.postgresql.org/docs/8.3/interactive/sql-syntax-lexical.html#SQL-SYNTAX-STRINGS


QQ图片20160129113517.jpg


赞(0)    操作        顶端 
茶香2222
注册用户
等级:上尉
经验:688
发帖:10
精华:0
注册:2015-11-18
状态:离线
发送短消息息给茶香2222 加好友    发送短消息息给茶香2222 发消息
发表于: IP:您无权察看 2015-12-7 14:54:34 | [全部帖] [楼主帖] 3  楼

1. 是我写错了,应该是postgresql7.0,我是用搜索关键字「pg_dump 双引号」找得

-n

除非绝对必需,禁止标识周围的双引号。如果有保留字用于标识符,这么做有可能在装载输出的数据时导致麻烦。这是 v6.4以前的 pg_dump 预设特性。

汇入的数据库是M$SQL 2005,是用sqlcmd汇入的
错误讯息是

1

行 x'xxxcolumn' 附近的语法不正确。

后来看到,是要在sqlcmd后面加上 -I 的参数(-I 启用引号识别码)才可以。

2. 问题因为我不能去修改数据库的设定档,目前只想到用shell script sed 来 replace

再次感谢大大提供的信息,对我帮助很大。 



该贴被茶香2222编辑于2015-12-7 14:55:53


赞(0)    操作        顶端 
云浅月93
注册用户
等级:少尉
经验:328
发帖:0
精华:0
注册:2015-12-4
状态:离线
发送短消息息给云浅月93 加好友    发送短消息息给云浅月93 发消息
发表于: IP:您无权察看 2015-12-9 17:21:29 | [全部帖] [楼主帖] 4  楼

顶楼主



赞(0)    操作        顶端 
茶香2222
注册用户
等级:上尉
经验:688
发帖:10
精华:0
注册:2015-11-18
状态:离线
发送短消息息给茶香2222 加好友    发送短消息息给茶香2222 发消息
发表于: IP:您无权察看 2015-12-10 12:33:33 | [全部帖] [楼主帖] 5  楼

顶楼主




赞(0)    操作        顶端 
aven
版主
等级:列兵
经验:97
发帖:0
精华:0
注册:2015-12-8
状态:离线
发送短消息息给aven 加好友    发送短消息息给aven 发消息
发表于: IP:您无权察看 2015-12-11 18:00:43 | [全部帖] [楼主帖] 6  楼   主页

如果只是导数据的话,建议用copy导出csv格式再导入到sqlserver。

sqlserver有link server,配置了odbc可以直接连接PostgreSQL,然后就可以用sqlserver的语法了。



赞(0)    操作        顶端 
东西南北
注册用户
等级:少校
经验:1161
发帖:16
精华:0
注册:2015-10-10
状态:离线
发送短消息息给东西南北 加好友    发送短消息息给东西南北 发消息
发表于: IP:您无权察看 2015-12-11 22:41:07 | [全部帖] [楼主帖] 7  楼

如果只是导数据的话,建议用copy导出csv格式再导入到sqlserver。

sqlserver有link server,配置了odbc可以直接连接PostgreSQL,然后就可以用sqlserver的语法了。

.....


嗯嗯,谢谢



赞(0)    操作        顶端 
总帖数
7
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论