perl操作sqlserver实现BCP
#!C:\Perl64\bin
#由BCP备份和恢复SQLSERVER指定表
use 5.014;
#加载用户和password型材
my $username ;
my $passwd;
##得到username
my $dir="c:";
$dir=$dir."/";
my $filename="config.txt";
my $keysword="username:";
my $count="50";
my $begincount=index($keysword,":");
my($file);
open(FILEH,$dir.$filename);
while(my $test=<FILEH>){
if((index($test,$keysword))>=0){
my $test1=substr($test,$begincount+1,$count);
#print "$test1";
chomp($username=$test1);
}
}
close(FILEH);
##获取password
my $dir="c:";
$dir=$dir."/";
my $filename="config.txt";
my $keysword="password:";
my $count="50";
my $begincount=index($keysword,":");
my($file);
open(FILEH,$dir.$filename);
while(my $test=<FILEH>){
if((index($test,$keysword))>=0){
my $test2=substr($test,$begincount+1,$count);
#print "$test2";
chomp($passwd=$test2);
}
}
close(FILEH);
print "-------------------------------------------------------------------\n";
print "请首先检查用户和password配置文件config.txt保存路径是否为$dir$filename\n";
print "-------------------------------------------------------------------\n";
print "重要提示:备份表操作请输入0;还原表操作请输入1\n";
print "请输入操作代码:";
chomp(my $inp=<STDIN>);
print "你输入的操作代码为$inp\n";
#推断输入为0即备份操作
if ($inp eq 0){
print 'serverIP:(不输入默觉得localhost)';
chomp(my $a = <STDIN>);
if ($a==''){
$a='localhost';
}else{
print "你输入的serverIP为:$a\n";
}
print 'username:';
chomp(my $b = <STDIN>);
print "你输入的username为:$b\n";
if($b eq $username) {
print "用户通过!\n";
} else {
print "对不起,username错误\n";
exit;
}
print "用户password: ";
chomp (my $readPsw = <STDIN>);
if($readPsw eq $passwd) {
print "password正确!\n";
} else {
print "对不起,password错误\n";
exit;
}
print "重要提示:备份表的表名格式为:test.dbo.t1\n";
print '备份的表:';
chomp(my $d = <STDIN>);
print "你输入的备份的表:$d\n";
print '保存路径:';
chomp(my $e = <STDIN>);
print "你输入的保存路径:$e\n";
if (-e $e){
print "$e已经存在!是否删除?(y删除;n不删除)\n";
chomp(my $i=<STDIN>);
given ($i)
{
when ("y") {
unlink $e;
print "開始备份表!\n";
system (" bcp $d out $e -c -t ',' -m 1 -a 49152 -b 5000 -F 1 -S $a -U $b -P $readPsw ");
}
when ("n")
{
print "-----------备份已经终止-----------\n";
print "指定文件存在,请又一次输入文件名称!\n";
}
default {print "仅仅能输入y或n!\n";}
}
}
else{
{
system (" bcp $d out $e -c -t ',' -m 1 -a 49152 -b 5000 -F 1 -S $a -U $b -P $readPsw ");
}
}
}
#推断输入为1还原操作
elsif($inp eq 1){
print 'serverIP:(不输入默觉得localhost)';
chomp(my $a = <STDIN>);
if ($a==''){
$a='localhost';
}else{
print "你输入的serverIP为:$a\n";
}
print 'username:';
chomp(my $b = <STDIN>);
print "你输入的username为:$b\n";
if($b eq $username) {
print "用户通过!\n";
} else {
print "对不起,username错误\n";
exit;
}
print "用户password: ";
chomp (my $readPsw = <STDIN>);
if($readPsw eq $passwd) {
print "password正确!\n";
} else {
print "对不起,password错误\n";
exit;
}
print '须要还原的表:';
chomp(my $d = <STDIN>);
print "你输入的备份的表:$d\n";
print '备份保存路径:';
chomp(my $e = <STDIN>);
if (-e $e) {
print "你输入的备份保存路径:$e\n";
system (" bcp $d in $e -c -t ',' -m 1 -a 49152 -b 5000 -F 1 -S $a -U $b -P $readPsw ");
}
else {
print "对不起,指定的备份文件$e不存在,请核实!\n";
}
}
else{
print "请參考重要提示!\n";
}
system 'pause';
----config.txt
username:sa
password:passwd123!
----用法
1.将config.txt保存到c文件夹包装
根据实际情况更改文件的内容
2.运行bcp.pl
perl操作sqlserver实现BCP的更多相关文章
- 使用cmd命令行窗口操作SqlServer
本文主要介绍使用windows下的使用cmd命令行窗口操作Sqlserver, 首先我们可以运行 osql ?/ ,这样就把所有可以通过CMD命令行操作sqlserver的命令显示出来 (有图有 ...
- Java连接并操作SQLServer数据库
本人只需在项目中引入sqljdbc4.jar 包即可 ----------------------------------------- 在JAVA中如何连接SQL Server数据库 - hangh ...
- Python操作SQLServer示例(转)
转自:http://www.cnblogs.com/lrzy/p/4346781.html 本文主要是Python操作SQLServer示例,包括执行查询及更新操作(写入中文). 需要注意的是:读取数 ...
- 转:Python操作SQLServer示例
注:此文也是转载,2018年1月发现此文阅读量过万,略感不安.当时只是为了自己存档学习,未粘此文的原始连接.如有侵权,通过即删除,敬请谅解! 从网上找的,估计原文是:Python操作SQLServer ...
- Python操作SQLServer示例
本文主要是Python操作SQLServer示例,包括执行查询及更新操作(写入中文). 需要注意的是:读取数据的时候需要decode('utf-8'),写数据的时候需要encode('utf-8'), ...
- perl操作MongoDB
perl操作MongoDB http://blog.csdn.net/jophyyao/article/details/8223190 Mongodb 的C语言操作 http://blog.csdn. ...
- MongoDB的安装配置、基本操作及Perl操作MongoDB
MongoDB的安装配置.基本操作及Perl操作MongoDB http://www.myhack58.com/Article/60/63/2014/42353.htm
- C#操作SqlServer MySql Oracle通用帮助类
C#操作SqlServer MySql Oracle通用帮助类 [前言] 作为一款成熟的面向对象高级编程语言,C#在ADO.Net的支持上已然是做的很成熟,我们可以方便地调用ADO.Net操作各类关系 ...
- .NET基础操作回顾_使用ADO.NET操作SqlServer使用的类
有些工具用的久了或者有新工具出现后,就慢慢的遗忘了很多,它们从熟悉的变成陌生,当然,对于我们来说不是好事吧. 今天回顾一下ADO.NET用到的MS的基础类库,先上代码(标准的SqlServer操作) ...
随机推荐
- A亚马逊WS网上系列讲座——怎么样AWS云平台上千万用户的应用建设
用户选择云计算平台构建应用程序的一个重要原因是高弹性的云平台和可扩展性. 面向Internet应用程序通常需要支持用户使用大量,但要建立一个高度可扩展.具有一定的挑战,高度可用的应用程序,只有立足AW ...
- hdu3602(变形背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3602 题意是:N个国家,M个飞船,每个国家有人数num,如果上飞船就给联合国value钱,选出某些国家 ...
- 怎样使用 iOS 7 的 AVSpeechSynthesizer 制作有声书(1)
原文: http://www.raywenderlich.com/64623/make-narrated-book-using-avspeechsynthesizer-ios-7 随着 PageVie ...
- Python用Tkinter的Frame实现眼睛护士的倒计时黑色屏幕
import Tkinter,time class MyFrame(Tkinter.Frame): def __init__(self): Tkinter.Frame.__init__(self) s ...
- 核心ASP.NET
1.用于Web应用程序的.NET Framework ASP.NET是.NET Framework的一部分,它可以在通过HTTP请求文档是在WEB服务器上动态创建它们,在.Net Framework中 ...
- ThinkPHP中的volist标签中使用eq标签出错
参考地址:http://blog.csdn.net/luquansen/article/details/18310855 源码: <volist id="v" name=&q ...
- quick-cocos2d-x游戏开发【4】——加入文本
文本的加入在quick中被封装在ui类中,它能够创建EditBox.菜单以及文本,文本总得来说能够创建TTF和BMFont两种. api对于它的说明非常具体.ui.newBMFontLabel(par ...
- Revit 2015 公布!
Revit 2015 公布了, 如今能够下载.大家能够搜索下中文版的下载. 之前就知道2015 的模型操作速度再次提高, 2015安装后的马上载入跑了一个模型.果然,2015 打开自带的高级模型,不管 ...
- Linux 命令 快捷命令综合
FTP开机启动 启动要让FTP每次开机自动启动,运行命令: chkconfig --level 35 vsftpd on linux 关机 1.halt linux 注销 1.logout linu ...
- zend studio 10 实现代码自动换行
在一篇zend framework 的PHP编码标准的文章中看到了这么一段: 一行 80 字符以内是比较合适,就是说,ZF 的开发者应当努力在可能的情况下保持每行代码少于 80 个字符,在有些情况下, ...