`
luogen33
  • 浏览: 82199 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

将数据导出成为文本格式的备份的shell脚本

阅读更多
提示: #将中表的内容导出成为一个文本格式的shell脚本 #有两种使用方法(假设这个脚本的名字叫做unload): #1.将一个用户中所有的数据库
#将中表的内容导出成为一个文本格式的shell脚本
#有两种使用方法(假设这个脚本的名字叫做unload):
#1.将一个用户中所有的数据库表的内容到出来:
unloaduserid/passwd[@connection]
#2.只导出一个表的内容:
#unloaduserid/passwd[@connection]table_name
#这里要感谢you的帖子,是他让我学会了如何设置sqlplus环境,从而
#将数据库数据分解出来。
#
#我还想写出一个根据数据库中的数据字典的内容自动生成ctl文件的脚本,
#以便于将文本的数据库内容使用sqlldr导入到数据库中
#请各位提示我可能要涉及的数据字典是哪些:)
#

sep=‘,‘#--分隔符,可以修改成自己想要的分隔符,如‘‘
load_table

if["X$1"="X"];then
echo"Usage:$0<userid/passwd@connection><table_name>"
exit
echo“c"Userid:"
readuserid1
echo“c"Passwd:"
echooff
readpasswd
userid=$userid1$passwd
echoon
else
userid=$1
fi

if["X$2"="X"];then
load_table;
if[["X$tables"="X"]];then
echo"notableinuser$userid"
exit
fi
else
tables=$2
fi

fortablein$tables
do
rm-fwk_$table.txt
echo"setcolsep$sep;
setechooff;
setfeedbackoff;
setheadingoff;
setpagesize0;
setlinesize1000;
setnumwidth12;
settermoutoff;
settrimouton;
settrimspoolon;
spoolwk_$table.txt;
selectfrom$table;
spooloff;
"sqlplus$userid>/dev/null
if["$?"-ne0];then
echoerror:sqlplus$useriderrorinunloadtable$table!!
echopleasecheckuseridandpasswdordatabase.
exit
fi

if[[-fwk_$table.txt]]
then
catwk_$table.txtgrep-v"^SQL>">$table.txt
sed-e"s/$//g"$table.txt>wk_$table.txt
mvwk_$table.txt$table.txt
if[[`grep"ORA-"$table.txt`=""]];then
echo"unloadtable$table....ok"
else
cat$table.txt
err="$err$table"
fi

else
echo$0error
fi
done
if[["X$err"="X"]];then
echounloadcomplete!
else
echo"unloadtable$errerror,pleasecheckit!"
fi







  例如:

    表 TEST1(ORACLE数据库  用户名USER,密码123)
    表中记录为  1223       555         5555       5555
                       2222      555         4555        448
                          :           :               :              :
                          :           :               :              :
   装载到/USR/TEST/TEXT.TXT文件中
   文件中各字段之间用逗号(‘,’)分割,行间用MS-DOS回车换行符分隔
   如上 应记录为
                      1223,555,5555,5555
                      2222,555,4555,448
                      ......

试一下这个脚本。
#myexport.sh

sqlplus username/passwd@dbinstance <<!
SET NEWPAGE 0
SET SPACE 0
SET PAGESIZE 0
SET ECHO OFF
SET FEEDBACK OFF
SET HEADING OFF
spool temp
SELECT * from test;
spool off
!

awk '$0 !~ /SQL|^$/{for(i=1;i<NF;i++) printf $i",";printf $NF"\n"}' temp.lst >/USR/TEST/TEXT.TXT
分享到:
评论

相关推荐

    linux下shell脚本实现数据的导出

    在Linux环境下,shell脚本是自动化任务的强大工具,尤其对于数据导出这样的操作,通过编写shell脚本可以方便地实现定期备份或者按需导出。本文将深入讲解如何使用shell脚本来实现数据的导出,并结合Java代码进行调用...

    数据库定时shell脚本 对表定时做前一天数据导出备份 同时删除当前表前一天导出数据

    在这个场景下,我们关注的是一个使用shell脚本来实现的自动化流程,它主要用于数据库中的表进行前一天的数据导出备份,并同时删除这些数据在当前表中的前一天版本。这个shell脚本,命名为`cron_update.sh`,通常会与...

    shell脚本可配置多线程备份mysql5.7.8以后数据库.rar

    下面将详细讲解如何使用shell脚本进行多线程备份以及相关的技术要点。 首先,理解shell脚本。Shell是Linux或Unix系统中的命令解释器,它允许用户通过命令行与操作系统交互。编写shell脚本意味着创建一个包含一系列...

    shell脚本可配置备份mysql5.7.8以前数据库.rar

    在该版本之前,数据库的备份主要依赖于mysqldump工具,这个工具可以导出数据库结构和数据到SQL格式的文本文件,以便在需要时恢复。 shell脚本通常会包含以下部分: 1. **变量配置**:脚本会定义一系列变量,如...

    shell脚本可配置备份mysql5.7.8以前数据库异常sendEmail25发邮件.rar

    这篇文档将深入解析标题"shell脚本可配置备份mysql5.7.8以前数据库异常sendEmail25发邮件.rar"中的关键知识点,包括shell脚本、MySQL数据库备份、异常处理以及sendEmail服务。 首先,我们要了解shell脚本。Shell...

    mysql自动实现备份脚本

    - 创建备份:利用`mysqldump`工具,将数据库结构和数据导出为SQL格式的文本文件。 - 压缩备份:使用`gzip`或`bzip2`等工具,对备份文件进行压缩,节省存储空间。 - 时间戳命名:备份文件通常会加上日期和时间戳,...

    Linux_shell脚本入门教程.pdf

    - **脚本创建**: 使用任意文本编辑器(如Nedit、Kedit、Emacs、Vi等)编写Shell脚本。脚本文件的第一行应包含`#!/bin/sh`或`#!/bin/bash`,用于指定解释器。 - **使脚本可执行**: - 使用`chmod +x filename`命令使...

    mysql备份脚本.rar

    在Linux上,备份脚本通常是shell脚本(.sh)。它的工作原理与Windows类似,但需要考虑到Linux特定的命令和路径。例如,使用`#!/bin/bash`作为脚本的开头来指定解释器,以及使用`cron`服务定期运行备份任务。 6. **...

    Bash中使用MySQL导入导出CSV格式数据

    `test_mysql_csv.txt`可能是脚本执行的结果记录或教程文本,详细解释了如何使用Bash和MySQL进行CSV数据操作,包括导入和导出的过程,以及可能出现的问题和解决策略。 总的来说,这个压缩包提供的资料涵盖了从Bash...

    一段进行SVN备份的脚本

    脚本的编写通常使用shell脚本(如bash)或批处理脚本(在Windows环境下)。这样的脚本会包含一系列命令,如`svnadmin dump`或`svn export`,以创建备份。`svnadmin dump`可以生成一个包含仓库全部信息的文本文件,而...

    oracle.exportsql.(导出建表脚本)

    在数据库管理中,经常需要进行数据迁移、备份或模型设计,此时“导出建表脚本”成为了一个重要的工具。Oracle提供多种方式来导出建表脚本,以方便在不同环境或者进行数据重建时使用。标题中的"oracle.exportsql....

    linux mysql定时备份脚本

    本文将详细介绍如何利用shell脚本来创建MySQL的定时备份,并结合提供的"mysqlbackup.sh"脚本和"添加定时任务.txt"文件,帮助你实现这一功能。 首先,我们来看"mysqlbackup.sh"这个shell脚本。这个脚本通常包含以下...

    不同数据库之间的数据导入导出

    1. **导出数据至文本文件**:通过编写shell脚本来执行SQL查询,将db1中的tab1表数据导出为逗号分隔值(CSV)格式的文本文件。此脚本需包含处理SQL输出格式、去除不必要的行和字符,以及数据格式转换等步骤。 - ...

    linux下shell等编程详细介绍

    在高级话题中,文档可能涵盖了函数、别名、shell脚本调试技巧以及一些实用的内置命令,如`source`用于执行脚本中的命令,`alias`用于创建命令别名,`history`用于查看过去的命令历史,以及`export`用于将变量导出到...

    mysql定时备份(linux脚本).zip

    在我们的场景中,这个脚本将会连接到MySQL服务器,执行备份操作,并将备份文件保存到本地或远程存储。 标题中的"mysql定时备份(linux脚本)"指的是一个使用Linux shell编写的脚本,用于自动执行MySQL数据库的备份...

    EDI shell脚本职责清单1

    在这个场景中,我们看到一系列shell脚本被用来自动化处理数据处理流程,主要涉及Hadoop、Hive、MySQL和NLP(自然语言处理)的任务。以下是这些脚本的主要职责和涉及的技术点: 1. `/opt/running/edi/edi_new_in_...

    Linux自动备份MySQL数据库脚本代码

    脚本的开始部分定义了MySQL的root用户的密码(`mysql_pwd`)以及`mysqldump`工具的路径,`mysqldump`是MySQL提供的一个命令行工具,用于导出数据库结构和数据到文本文件,常用于备份和迁移。 接着,脚本获取当前的...

    定时任务(卸数,上传数据)

    1. **数据卸载**:数据卸载通常是指将数据库中的部分或全部数据导出到文件,如CSV、Excel或文本文件,以便于分析、备份或传输。常用工具有SQL Server的bcp、MySQL的mysqldump等。 2. **数据清洗**:在卸载数据前,...

    mysql数据库备份脚本

    这个工具可以用来执行全量备份,将所有数据库或特定数据库、表的数据导出到一个SQL格式的文件中。 2. **基本命令语法**:`mysqldump -u [username] -p[password] [database_name] &gt; [backup_file.sql]`。在这个命令...

    Shell脚本自动备份MySQL到FTP并定期清理过期备份

    【Shell脚本自动备份MySQL到FTP并定期清理过期备份】是Linux系统中常用的一种自动化运维策略,旨在提高数据安全性和管理效率。以下是对这一主题的详细解释: 1. **Shell脚本**:Shell脚本是Linux/Unix操作系统中...

Global site tag (gtag.js) - Google Analytics