如何使用Shell脚本连接到用户定义的Oracle数据库?
我有一个包含几个不同数据库的服务器。我试图创建一个脚本,询问用户要连接到哪个数据库,以及用户名和密码,然后连接到该数据库并执行其余操作 到目前为止,我写了以下内容:如何使用Shell脚本连接到用户定义的Oracle数据库?,oracle,shell,Oracle,Shell,我有一个包含几个不同数据库的服务器。我试图创建一个脚本,询问用户要连接到哪个数据库,以及用户名和密码,然后连接到该数据库并执行其余操作 到目前为止,我写了以下内容: awk 'BEGIN {FS=":"}!/^#/ && !/^\*/ && !/^$/{print $1":"$2}' ${ORATAB} echo "Enter database instance name: " read sid ex
awk 'BEGIN {FS=":"}!/^#/ && !/^\*/ && !/^$/{print $1":"$2}' ${ORATAB}
echo "Enter database instance name: "
read sid
export ORACLE_SID='echo $sid'
export ORACLE_HOME=`grep -i "^${ORACLE_SID}:" /etc/oratab | grep -v "^#" | cut -d ':' -f 2,2 `
export PATH=$ORACLE_HOME/bin:/bin:/usr/bin:/usr/local/bin:/etc
export LD_LIBRARY_PATH=${ORACLE_HOME}/lib:${LD_LIBRARY_PATH}
sqlplus /nolog << EOF
CONNECT / as sysdba
select object_type,status,count(1) from dba_objects where owner='abc' and status='INVALID' group by object_type,status;
EXIT;
EOF
awk'BEGIN{FS=“:”}!/^#/&&!/^\*/&/^$/{print$1:“$2}”${ORATAB}
echo“输入数据库实例名称:”
读取sid
导出ORACLE_SID='echo$SID'
export-ORACLE_HOME=`grep-i^${ORACLE_SID}:“/etc/oratab | grep-v^ |”| cut-d':'-f2,2`
导出路径=$ORACLE_HOME/bin:/bin:/usr/bin:/usr/local/bin:/etc
导出LD_库路径=${ORACLE_HOME}/lib:${LD_库路径}
sqlplus/nolog经过多次尝试后,这一方法成功了
awk 'BEGIN {FS=":"}!/^#/ && !/^\*/ && !/^$/{print $1":"$2}' ${ORATAB}
echo "Enter database instance name: "
read sid
export ORACLE_SID=$sid
export ORACLE_HOME=`grep -i "^${ORACLE_SID}:" /etc/oratab | grep -v "^#" | cut -d ':' -f 2,2 `
export PATH=$ORACLE_HOME/bin:/bin:/usr/bin:/usr/local/bin:/etc
export LD_LIBRARY_PATH=${ORACLE_HOME}/lib:${LD_LIBRARY_PATH}
sqlplus /nolog << EOF
CONNECT / as sysdba
select object_type,status,count(1) from dba_objects where owner='abc' and status='INVALID' group by object_type,status;
EXIT;
EOF
awk'BEGIN{FS=“:”}!/^#/&&!/^\*/&/^$/{print$1:“$2}”${ORATAB}
echo“输入数据库实例名称:”
读取sid
导出ORACLE_SID=$SID
export-ORACLE_HOME=`grep-i^${ORACLE_SID}:“/etc/oratab | grep-v^ |”| cut-d':'-f2,2`
导出路径=$ORACLE_HOME/bin:/bin:/usr/bin:/usr/local/bin:/etc
导出LD_库路径=${ORACLE_HOME}/lib:${LD_库路径}
sqlplus/nolog您可能希望与DBA进行检查,很可能他们已经构建了脚本来为每个数据库设置环境变量。