1. 程式人生 > >[ SHELL編程 ] 編程常用的ORACLE相關命令

[ SHELL編程 ] 編程常用的ORACLE相關命令

password 執行效率 use compute 是否 命令 return result 判斷

本文主要描述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 0 #輸出每頁行數,缺省為24,為了避免分頁,可設定為0。 set linesize 150 #設置每行顯示字符數,缺省為80,最大值為999 set numwidth 12 #輸出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 0;
  set linesize 150;
  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 0;
  set linesize 150;
  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 0 ]  && return 0 || return 1  #返回0表示正常,1表示關閉

6、判斷Oracle監聽狀態

ps -ef | grep tnslsnr | grep -v grep &>/dev/null #通過tnslsnr進程判斷
[ $? -eq 0 ]  && return 0 || return 1  #返回0表示正常,1表示關閉

[ SHELL編程 ] 編程常用的ORACLE相關命令