高效实施SQLServer和PostgreSQL相互间的导入导出

前提:将要导入或者导出的所有表名字写入一个txt文件

* SQlServer

导出:(注意:tokens=1,2,3,要真正拿到表名)

@echo off
cd /d "%~dp0"
for /f "tokens=1,2,3 delims=." %%i in (tableName.txt) do (
echo %date% %time% start to export %%k from sqlserver >>copy.log
bcp %%i.%%j.%%k out "%%k.csv" -c -t ","  -S ".\Instance名" -T
echo %date% %time% end to export %%k  from sqlserver >>copy.log
echo. >>copy.log
)

导入:批处理写法一样,SQL文【out】变为【】
 

bcp {table名1} in "E:\temp\table1.csv" -c -t ","  -S ".\Instance名" -T
bcp {table名2} in "E:\temp\table2.csv" -c -t ","  -S ".\Instance名" -T
....

* PostgreSQL

导入:


@echo off
cd /d "%~dp0"
rem DB接続情報
set USERID=postgres  
set DBNAME=database名  
set HOST=localhost  
set PORT=5432  

rem ポスグレ接続
echo %date% %time% start to copy >>copy.log
"c:\Program Files\PostgreSQL\9.5\bin\psql.exe" -h %HOST% -p %PORT% -U %USERID% -d %DBNAME% -f copyToPostgreSQL.sql 
echo %date% %time% end to copy >>copy.log

exit

SQL文:copyToPostgreSQL.sql

copy table名1 from 'E:\temp\table1.csv' delimiter ','
copy table名1 from 'E:\temp\table2.csv' delimiter ','
...

导出

批处理一样,SQL文【from】变成【to】

copy table名1 to 'E:\temp\table1.csv' delimiter ','
copy table名2 to 'E:\temp\table2.csv' delimiter ','
...

 

转载于:https://my.oschina.net/mj23/blog/794455

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值