日期:2014-05-17  浏览次数:20923 次

oracle与shell
我想写一个shell  在shell中连接数据库 oracle  
shell 就是命令的集合 理论上直接写 SQL*plus CONNECT oradb  密码 。。。。 就可以写了 
但是具体该怎么写 求大神~~!
谢谢!!!
------最佳解决方案--------------------
sqlplus -S /nolog <<EOF
    WHENEVER SQLERROR EXIT SQL.SQLCODE
    conn user/password
    这里是你的sql语句
EOF

这样就行了,把user/password换成你的用户名,密码。
------其他解决方案--------------------
 libsqlplus.so在哪里?把这个路径加到LD_LIBRARY_PATH环境变量里面
例如
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/u01/sqlplus
------其他解决方案--------------------
$ cat bskmonitor.sh

#!/bin/ksh
#!/bin
#cd ${HOME}
#. .profile
export ORACLE_HOME=/oracle/app/oracle/product/9.2.0
PATH=$PATH:$ORACLE_HOME/bin
user=yourname
passwd=yourpass
orasid=yourSID


cd /yourpath
>bosshead.txt
recordnum=`sqlplus -s ${user}/${passwd}@${orasid} <<EOF
set head off feedback off pagesize 0;
Select sysdate from dual;
exit;
EOF`
------其他解决方案--------------------
LOGFILE=mylog
sqlplus -S /nolog <<EOF 1>>${LOGFILE} 2>&1
    WHENEVER SQLERROR EXIT SQL.SQLCODE
    conn user/password
    ...
EOF

给LOGFILE赋值你需要的文件名字即可。2>&1表示STDOUT和STDIN都写到LOG里面。
------其他解决方案--------------------
 cat aa.sh
#!/bin/bash
qlplus -s /nolog <<EOF
WHENEVER SQLERROR EXIT SQL.SQLCODE
conn moiats3/moiats3
select sysdate from dual
EOF

: bad interpreter: 没有那个文件或目录
报这个错
------其他解决方案--------------------
不好意思 : bad interpreter: 没有那个文件或目录
是我的问题 但是又出问题
sqlplus: error while loading shared libraries: libsqlplus.so: cannot open shared object file: No such file or directory
唉 继续求大神~~
------其他解决方案--------------------
#!/bin/bash
sqlplus -s /nolog <<EOF
WHENEVER SQLERROR EXIT SQL.SQLCODE
conn dzxd/dzxd
select sysdate  from dual
EOF

没问题呀。你是不是把sqlplus写错了
------其他解决方案--------------------
--这里是 登录数据库 把结果放在recordnum里是吗?
recordnum=`sqlplus -s ${user}/${passwd}@${orasid} <<EOF
set head off feedback off pagesize 0;
Select sysdate from dual;
exit;
EOF`
--所有的sql语句卸载EOF里就可以了是吗?

------其他解决方案--------------------
我百度了一下发现以上大神的写法都是对的,问题处在我这边。
嗯~~~
谢谢以上各位。
我要把查询出的结果写到文件中
该如何 直接在末尾》file吗?