如何编写一个shell脚本,从oracle数据库一个表table01读取全部数据到指定xx目录下的table01.damp文件

如何编写一个shell脚本,从oracle数据库一个表table01读取全部数据到指定xx目录下的table01.damp文件,第1张

兄弟,不是damp文件,是dmp文件吧

开始-运行-cmd

exp 数据库用户/密码@数据库连接串 tables=(table01) file=c:\xx\table01dmp

然后回车

启动oracle数据库步骤:\x0d\首先使用oracle用户登录Linux,然后在shell命令行中执行下面的命令:\x0d\第一步:打开Oracle监听\x0d\$ lsnrctl start\x0d\第二步:进入sqlplus\x0d\$ sqlplus /nolog\x0d\SQL>\x0d\第三步:使用sysdab角色登录sqlplus\x0d\SQL> conn /as sysdba\x0d\第四步:启动数据库\x0d\SQL> startup\x0d\经过上面的四个步骤,oracle数据库就可以启动了。\x0d\关闭数据库用 shutdown 是要等待事物结束才关闭,强制关闭用 shutdown abort。

#取出文件名和路径到/oracle/filename_temptxt文件中,这里把文件名和路路径用 | 分开了 方便awk取值

echo "sqlplus user/pwd@sid <<!!

set feedback off

set heading off

set pagesize 0

set linesize 50

set term off verify off

set echo off

set colsep ","

set trimspool on

spool /oracle/filename_temptxt

select filepath||'|'||filename from temptable;

spool off

quit

!! " > /oracle/filename_tempsh

sh /oracle/filename_tempsh

rm /oracle/filename_tempsh

cat /oracle/filename_temptxt|grep -v SQL|while read line

do

filepath=`echo $line|awk -F '|' '{print $1}'`

filename=`echo $line|awk -F '|' '{print $2}'`

mkdir -p /oracle/$filepath #这里的路径可能还要根据你的要求自己改下

cd /oracle/$filepath

touch $filename

done

应用spool命令,大量数据汇出很方便,脚本内容大致如下:

--============================================

#!/bin/sh

#第一步

sqlplus -s 用户名/密码@服务名<<EOF

spool customerssql --输出文件路径及名称

set trimspool on

set linesize 8000

set pagesize 50000

set newpage 1

set heading off

set term off

set feedback off

set sqlblankline off

SELECT A || '|+|' || --字段A

B || '|+|' || --字段B

C || '|+|' || --字段C

D || '|+|' || --字段D

E || '|+|' || --字段E

F || '|+|' || --字段F

G || '|+|' || --字段G

TO_CHAR(H,'YYYYMMDD HH:MM:SS') || '|+|' --字段H,可以使用函数

FROM CUSTOMERS;--表名

spool off

exit

EOF

--=======================

其中'|+|'为分隔符,也可以换成你说的逗号,即','。调用该脚本后,在根目录下生成customerssql文件。

有一个工具是mysql到oracle做数据迁移的叫Convert Mysql to Oracle 你可以试试,不知道合不合适。

非要弄shell的话,那可真是麻烦可以选择让程序员写个小程序转换sql的让后用shell调用。

真自己写shell。。。那就折腾导出来的 create、insert语句吧。想想都头大。是在没必要完全用shell弄。

以上就是关于如何编写一个shell脚本,从oracle数据库一个表table01读取全部数据到指定xx目录下的table01.damp文件全部的内容,包括:如何编写一个shell脚本,从oracle数据库一个表table01读取全部数据到指定xx目录下的table01.damp文件、linux下怎么启动oracle数据库,命令是什么、创建空文件的shell脚本,文件创建路径和文件名从Oracle数据库指定表中读取。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/sjk/10188927.html

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

发表评论

登录后才能评论

评论列表(0条)

保存