
使用"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格式打开
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)