[ SHELL編程 ] 編程常用的ORACLE相關命令
阿新 • • 發佈:2017-11-03
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 setecho 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相關命令