加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 13:22:02 所属栏目:MsSql教程 来源:网络整理
导读:前提:将要导入或者导出的所有表名字写入一个txt文件 * SQlServer 导出:(注意:tokens=1,2,3,要真正拿到表名) @echo offcd /d "%~dp0"for /f "tokens=1,3 delims=." %%i in (tableName.txt) do (echo %date% %time% start to export %%k from sqlserver

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

* SQlServer

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

@echo off
cd /d "%~dp0"
for /f "tokens=1,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:temptable1.csv" -c -t ","  -S ".Instance名" -T
bcp {table名2} in "E:temptable2.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 FilesPostgreSQL9.5binpsql.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:temptable1.csv' delimiter ','
copy table名1 from 'E:temptable2.csv' delimiter ','
...

导出

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

copy table名1 to 'E:temptable1.csv' delimiter ','
copy table名2 to 'E:temptable2.csv' delimiter ','
...

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读