1. 如何用shell脚本将在mysql数据库中得到的数据导入到oracle数据库中
有一个工具是mysql到oracle做数据迁移的叫Convert Mysql to Oracle 你可以试试,不知道合不合适。
非要弄shell的话,那可真是麻烦可以选择让程序员写个小程序转换sql的让后用shell调用。
真自己写shell。。。那就折腾导出来的 create、insert语句吧。想想都头大。是在没必要完全用shell弄。
2. linux shell 脚本怎么连oracle数据库取数
在shell里面执行sqlplus,大致如下
sqlplus username/password@sid << EOF >> xxxx.log
select field_name from table_name where ....;
exit;
EOF
然后从输出log里面分析出你要的值
3. 写个shell脚本连接oracle数据库查询某表数据导出为txt文件,再发送到第三
1、简单的单列
#!/bin/sh
sqlplus 'user001/12345678'<< EOF
set define off
set hea off
spool vip1.txt
select username from ACCOUNT where LEVEL=7;
spool off
quit;
EOF
sed -i 's/[ ]*//g' ~/vip1.txt
sed -i '/^$/d' ~/vip1.txt
sed -i '1d' ~/vip1.txt
sed -i '$d' ~/vip1.txt
scp -P22 ~/vip1.txt [email protected]:/root
2、复杂的多列
#!/bin/sh
cid=$1;
today=`date +%Y-%m-%d-%H.%M`
ym=`date +%Y%m`
ymd=`date -d -1days +%Y%m%d`
last_ym=`date -d last-month +%Y%m`
next_ym=`date -d next-month +%Y%m`
file=chat_recorder_${cid}_20140707-11.xls
if [[ $1 == '' ]];then
echo "Usage: $0 company_id "
exit 0;
fi
sqlplus 'user002/12345678' << EOF
set linesize 200
set term off verify off feedback off pagesize 999
set markup html on entmap ON spool on preformat off
alter session set nls_date_format='YYYY-MM-DD HH24:MI:SS';
spool ${file}
select a.*,b.* from recorder_${ym} a,t_${ym} b where a.company_id='$cid' and a.create_time between TO_DATE('2014-07-07 00:00:00', 'YYYY-MM-DD HH24:MI:SS') and TO_DATE('2014-07-12 00:00:00', 'YYYY-MM-DD HH24:MI:SS') and a.chat_id=b.chat_id order by b.chat_id ;
spool off
quit;
EOF
sed -i '/select/d' $file
zip -r ${file}.zip $file
scp -P22 ${file}.zip [email protected]:/opt
4. 如何在shell脚本中嵌入Oracle数据库操作
是不是要这样脚本:
sqlplus-Ssystem/system<<EOF
setfeedbackoff
setheadingoff
setpagesize0
setlinesize200
setechooff
settermoutoff
spooltxt/fbfjmxb.txt
select*fromORD_PEO_TXNPCLWHERESUBSTR(TRIM(YJHM),1,1)='9'ANDTRUNC(CLDATE,'dd')=TRUNC(SYSDATE,'dd');
spooloff
exit;
EOF
既然能执行select语句,update,delete,执行过程和函数是没有任何问题的。
5. 你好,我想写个shell脚本连接oracle服务器查询某表数据并且导出到txt文本
使用shell调用sqlplus来执行sql语句,导出到文件可以通过spool命令指定文件,我从自己曾经写的脚本截取一段给你示例吧,如果你熟悉shell编写的话,很容易改造成自己需要的
参数1-6分别是表名,oracle用户名,oracle密码,oracle服务器ip地址,oracle服务器端口,oracle服务器的服务名(如果不确定联系DB管理员)
T_NAME=$1
USERID=$2
PASSWD=$3
IP=$4
PORT=$5
SERVICENAME=$6
DB_LINK_STR=$USERID/$PASSWD@$IP:$PORT/$SERVICENAME
sqlplus -S $DB_LINK_STR<<EOF
set HEADING OFF
SET ECHO OFF
SET FEEDBACK OFF
SET TERMOUT OFF
SET LINESIZE 1000
SET TRIMSPOOL ON
spool temp.out
select COLUMN_NAME||' '||DATA_TYPE||' '||DATA_LENGTH||' ',DATA_DEFAULT from user_tab_columns where table_name='$T_NAME' order by column_id;
spool off
exit
EOF
sed -i '/^$/d' temp.out
执行完毕后,就会出现temp.out文件,里面是指定表的一些信息:列名,数据类型,数据长度和默认值,且以空格分隔
6. 怎么用xshell给机器装oracle
通过配置本地数据库的tns配置文件实现:
去oracle安装目录下oracle\proct\10.2.0\db_2\NETWORK\ADMIN\ 找到tnsnames.ora,用记事本打开,里边有远程数据库的tns连接配置串如下
ORCL23 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.23)(PORT = 1521))
)
7. 怎么样用shell做一个连接oracle数据库的脚本
这个问题你可能通过查询oracle的系统表,例如all_all_tables,用这些对象的列表生成一批数据库删除对象的语句,然后将这些语句存到文件,用sqlplus的文件参数执行这一批语句。
8. xshell连接不上oracle数据库中的用户
使用sqlplus连接oracle11g数据库步骤如下所示:
方法一:
1、找到sqlplus,在开始菜单你安装的oracle-》应用程序开发目录下面;
2、点击SQLPlus,弹出cmd;
3、输入用户名,还有密码,密码后面加上@数据库实例名,登录成功后界面如下所示;
方法二:
在开始-》运行(快捷键win+r),输入cmd。弹出的黑色框中输入:sqlplus用户名/密码@数据库实例名;
9. linux 下没装oracle 怎么在shell中连接其他机器的oracle
你如果安装了Oracle的客户端程序,可以使用sqlplus之类直接连接
如果没有安装,就只能telnet或ssh到远程服务器上,然后在对方服务器上直接操作