如何写.bat文件,连接PostgreSQl,执行SQL文件.

如何写.bat文件,连接PostgreSQl,执行SQL文件.,第1张

原理:

使用"C:\Program

Files\PostgreSQL\9.0\bin\psql.exe"来建立到PostgreSQL数据库的连接后执行SQL语句

(建立数据库连接的方法,可以参考C:\Program

Files\PostgreSQL\9.0\scripts\runpsql.bat文件。)

一,执行SQL语句

SET

DB_NAME=TEMP

"C:\Program

Files\PostgreSQL\9.0\bin\psql.exe"

-h

localhost

-U

postgres

-d

%db_NAME%

-p

5432

-w

-c

"SELECT

*

FROM

TABLE1"

二,执行SQL脚本文件

在SQL语句比较复杂时,可以先把SQL语句保存到文件中,然后用psql.exe执行该文件。

@rem

move

to

the

current

file's

directory

%~d0

CD

%~dp0

@rem

excute

a

sql

script

file

to

create

database

"C:\Program

Files\PostgreSQL\9.0\bin\psql.exe"

-h

localhost

-U

postgres

-d

postgres

-p

5432

-w

-f

resource/db/createdb.sql

如果有多个SQL脚本文件(如:a.sql,

b.sql,

c.sql),可以新建一个SQL脚本文件(index.sql)来调用这多个脚本文件,这样在BAT中只需要一个命令语句,而不需要多次复制相似的命令。新建index.sql文件的内容可以是:

\i

resource/db/createdb.sql

\i

resource/db/createsp.sql

\i

resource/db/insertdata.sql

备注:

在CMD窗口中输入

"C:\Program

Files\PostgreSQL\9.0\bin\psql.exe"

-?

可以查找psql的相关命令。

建立了数据库连接后,可以用help命令,或者\?

查找sql命令。

首先,做一个简单的sql文件(log.sql)。

在这个SQL文件中我们创建了一个表。

接下来,我们来建一个bat批处理文件(log.bat)。

在这个bat文件里面我们调用绝对路径的sql文件,并将执行过程及结果输出到log.txt文件中。

最后,我们运行bat文件,执行多个sql脚本plsql语句。

bat文件调用数据库中的存储过程:

假设数据库中一个存储过程,名称为Produce_log

我们只需要修改独立的sql文件如下即可:

execute Produce_log

exit

@ECHO off

@title Hr数据库部门、人员信息同步

SET user=hrmis

SET password=hrmis

SET serverip=192.168.0.110

SET db=HRDBG

ECHO ......当前使用的数据库连接:服务器IP:%serverip% 数据库:%db% 用户名:%user% 密码: %password%

ECHO ......请确认数据库连接设置正确,如果不正确请点窗口右上角×退出!!!!!!!

pause

set t0=%TIME:~0,1%

set logTIME=_%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%_%TIME:~0,2%%TIME:~3,2%%TIME:~6,2%

if "%t0%"==" " set logTIME=_%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%_0%TIME:~1,1%%TIME:~3,2%%TIME:~6,2%

set logfile0=Mas%logTIME%.log

ECHO ......脚本程序开始运行时间:[%DATE:~0,10% %TIME:~0,8%]

ECHO ......脚本程序开始运行时间:[%DATE:~0,10% %TIME:~0,8%] >>%logfile0%

ECHO ......当前使用的数据库连接:服务器IP:%serverip% 数据库:%db% 用户名:%user% 密码: %password% >>%logfile0%

ECHO .............updatesql\1、部门、人员信息同步.sql

ECHO .............updatesql\1、部门、人员信息同步.sql>>%logfile0%

osql -U %user% -P %password% -S %serverip% -d %db% -i updatesql\1、部门、人员信息同步.sql>>%logfile0% -n

ECHO .............updatesql\2、考勤数据导入.sql

ECHO .............updatesql\2、考勤数据导入.sql>>%logfile0%

osql -U %user% -P %password% -S %serverip% -d %db% -i updatesql\2、考勤数据导入.sql>>%logfile0% -n

ECHO .............updatesql\3、加班重新计算.sql

ECHO .............updatesql\3、加班重新计算.sql>>%logfile0%

osql -U %user% -P %password% -S %serverip% -d %db% -i updatesql\3、加班重新计算.sql>>%logfile0% -n

ECHO [%DATE:~0,10% %TIME:~0,8%]处理成功!退出系统重新登陆,获取最终结果。。。。。。

ECHO [%DATE:~0,10% %TIME:~0,8%]完成。 >>%logfile0%

pause

以上是BAT示范文件,保存为BAT格式打开


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/6792217.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-28
下一篇2023-03-28

发表评论

登录后才能评论

评论列表(0条)

    保存