[ SHELL编程 ] 编程常用的ORACLE相关命令

本文主要描述shell编程中常用的Oracle相关命令。

1、sqlplus -L/-S参数

sqlplus -L user/password #-L参数表示用户只尝试登录一次, 而不是在出错时再次提示,可判断用户/密码是否正确
sqlplus -S user/password #-S表示设置无提示模式,常用

2、set相关命令

set timing on #显示SQL语句的运行时间。默认值为OFF。可用于性能分析SQL执行效率。
set autotrace on #允许对执行的SQL进行分析
set trimout on # 去除标准输出每行的拖尾空格,缺省为OFF
set trimspool on #去除重定向(SPOOL)输出每行的拖尾空格,缺省为OFF
set echo on #不显示START启动的脚本中的每个SQL命令,缺省为ON
set feedback on #设置显示"已选择XX行",显示本次SQL命令处理的记录条数,缺省为ON
set colsep '|' #输出列之间的分隔符。
set heading off #输出域标题,缺省为on
set pagesize #输出每页行数,缺省为24,为了避免分页,可设定为0。
set linesize 150 #设置每行显示字符数,缺省为80,最大值为999
set numwidth #输出NUMBER类型域长度,缺省为10
set termout off #常用SPOOL XXX时,即关闭报表在屏幕上的显示以节省时间,缺省值为ON
set serveroutput on #设置允许显示输出类似DBMS_OUTPUT
set verify of #可以关闭和打开提示确认信息old 1和new 1的显示.
show all #显示当前所有参数情况

3、保存SQL执行结果

方法一:利用spool命令

sqlplus -S / as sysdba << EOF
set echo off;
set pagesize ;
set linesize ;
spool temp.txt;
select username from dba_users;
spool off;
exit
EOF

方法二:利用重定向

echo "set echo off;" >> ${operate_sql}
echo "set pagesize 0;" >> ${operate_sql}
echo "set linesize 150;" >> ${operate_sql}
echo "select username from dba_users;" >> ${operate_sql}
echo "exit" >> ${operate_sql}
sqlplus -S / as sysdba < ${operate_sql} > ${operate_sql_result}

方法三:利用重定向

sqlplus -S / as sysdba > temp.txt << EOF
set echo off;
set pagesize ;
set linesize ;
select username from dba_users;
exit
EOF

4、常用SQL

select username from dba_users; #dba用户登录

#获取用户记录数一
select 'analyze table'||t.TABLE_NAME||'compute statistics;' from user_tables t; #先刷新
select table_name,num_rows from user_tables;
#获取用户记录数二
select count(*) from table_name;

5、判断oracle实例启动状态

ps -ef | grep ora_pmon | grep -v grep &>/dev/null #通过pmon进程判断
[ $? -eq ] && return || return #返回0表示正常,1表示关闭

6、判断Oracle监听状态

ps -ef | grep tnslsnr | grep -v grep &>/dev/null #通过tnslsnr进程判断
[ $? -eq ] && return || return #返回0表示正常,1表示关闭
上一篇:oracle常用命令总结


下一篇:Data Base Oracle 常用命令