shell指令碼與Oracle互動方式

2021-06-14 22:12:43 字數 2223 閱讀 9872

shell指令碼呼叫oracle命令:

1、直接執行oracle命令

su - oracle -c "export oracle_sid=$; 

echo \"select sysdate from dual;\"

| sqlplus $/$

| grep ora- > /tmp/checkdbstatus" > /tmp/outnull.tmp 2>&1

可簡單的用上面的語句檢查資料庫是否可連線,使用者名稱、密碼是否正確

2、寫sql檔案,然後執行。

定義指令碼檔案sqlfile和執行日誌檔案logfile(用於判斷執行是否成功)

建立資料庫使用者

echo "prompt" > $

echo "prompt creating user" >> $

echo "prompt ******************************" >> $

echo "prompt" >> $

echo "connect sys/$ as sysdba" >> $

echo "spool $" >> $

echo "set echo on" >> $

echo "create user $" >> $

echo "identified by $" >> $

echo "default tablespace $" >> $

echo "temporary tablespace $" >> $

echo "profile default;" >> $

echo "commit;" >> $

echo "/" >> $

echo "grant connect to $ with admin option;" >> $

echo "grant resource to $ with admin option;" >> $

echo "grant create any table to $ with admin option;" >> $

echo "grant create any view to $ with admin option;" >> $

echo "grant select any dictionary to $ with admin option;" >> $

echo "grant select any table to $ with admin option;" >> $

echo "grant unlimited tablespace to $ with admin option;" >> $

echo "commit;" >> $

echo "/" >> $

echo "spool off" >> $

echo "exit;" >> $

執行

oracle使用者:$($oraclehome/bin/sqlplus /nolog @ $)

非oracle使用者:su - oracle -c "\$/bin/sqlplus /nolog @ /tmp/tbs.sql"
判斷執行結果

oraerror=$(grep -c -i "user created" $)

oraerror2=$(grep -c -i "grant succeeded" $)

建立表空間

echo "connect sys/$ as sysdba" > $

echo "set echo on" >> $

echo "spool $" >> $

echo "create tablespace $" >> $

echo "datafile" >> $

echo "'$'" >> $

echo "size" >> $

echo "$m" >> $

#echo "autoextend on next $m" >> $

echo "extent management local" >> $

echo "/" >> $

echo "spool off" >> $

echo "exit;" >> $

學習shell 與shell指令碼 學習筆記

一般模式 編輯模式 命令列命令模式 一般模式下輸入 都會進入命令列模式 我們寫vi命令中最常用的方法 一般模式 0 移動到這一行的最前面字元處 移動到這一行的最後面字元處g 移動到這個檔案的最後一行 gg移動到這個檔案的第一行 n n為數字 游標向下移動n行 word 從游標位置開始向下搜尋乙個名為...

Shell指令碼函式與遞迴

function 函式名 定義函式 function 函式名 呼叫函式 執行一次函式 函式名 實參 傳遞與接收實參 傳遞 函式名 實參1 實參2 接收 1 2 3 傳遞實參的個數 引用所有實參 返回值 return 字串 若函式有返回值,通過 來獲取 注 只有1byte的寬度 255,因為shell...

Shell指令碼(三) Shell指令碼入門

1 指令碼格式 指令碼以 bin bash開頭 指定解析器 2 第乙個shell指令碼 helloworld 1 需求 建立乙個shell指令碼,輸出helloworld 2 案例實操 atguigu hadoop101 datas touch helloworld.sh atguigu hadoo...