A. LINUX下shell腳本如何執行 sql腳本 到DB2資料庫
1、在gedit中編寫.sh格式的文件,保存為a.sh。
B. 在shell腳本中使用 isql 執行SQL語句 查詢sybase資料庫中滿足條件的記錄條數,怎麼把查詢結果賦給變數
放在一個批處理中執行就可以了
use natdb
go
declare @Nrows integer
select @Nrows=count(*) from test_userdata
if @Nrows>0
update ....
else
insert ...
go
C. 怎麼在shell腳本裡面獲得sqlplus執行的結果
請參考下面這個方法:
備註:getDbUserByTableName$TableName是獲取表在哪個資料庫的。你可以直接把$DbUSER換成tns串或者別名即可。
#sqlplus連接資料庫的方法
#需要傳入兩個參數,第一個是表名,一個是需要執行的sql語句,一條語句作為一行
sqlBossDb(){
TableName=$1
SqlStr=$2
getDbUserByTableName$TableName
DbUSER=`catdbuser.temp`
Note_Log"$DbUSER連接資料庫,執行語句$SqlStr"
evalecho${$DbUSER}>aaa.temp#查詢出來是sqlDbUser.cfg中DBUSERNAME項,需要換成DBUSERSTR項
DbUSER=`cataaa.temp`
#Note_Log"開始$DbUSER"
sqlplus$DbUSER<<!
setlinesize1000
$SqlStr
commit;
quit
!
e
D. SHELL腳本如何處理sql執行結果
pid id
1 2
1 3
1 4
1 5
2 3
2 4
3 5
存放在6.txt中,可以用工具將數據轉換為SQL,然後拷貝到執行SQL的工具中執行
cat6.txt|awk'NR>1{printf("insertintotable_name(pid,id)values("%s","%s"); ",$1,$2);}'
輸出:
insert into table_name (pid,id) values ("1","2") ;
insert into table_name (pid,id) values ("1","3") ;
insert into table_name (pid,id) values ("1","4") ;
insert into table_name (pid,id) values ("1","5") ;
insert into table_name (pid,id) values ("2","3") ;
insert into table_name (pid,id) values ("2","4") ;
insert into table_name (pid,id) values ("3","5") ;
如果需要插入在一個事務中完成,可以視資料庫類型自己在SQL前後增加
begin
commit
這類語句。
E. 如何在shell腳本中,判斷一個基本命令執行是否成功
命令執行是否成功主要由 命令自己確定,如果它出錯 它會返回一個非0的退出狀態
這個退出狀態通過 $? 內置變數獲取
在shell腳本的編寫過程中 邏輯運算 ( && ||)就是由退出狀態決定
0 表示 true(正常) 非零表示false(異常),異常退出值可以有很多不同的值,這些值就表示了錯誤類型。
function exit_status(){
( exit $1 )
}
這個函數會根據參數返回錯誤狀態
exit_status 123
echo $? #輸出退出狀態 123
另外解釋以下 c語言和 shell 腳本的關系。
標准 c/c++語言 main函數
int main(int argc,char **argv){
}
main的返回值就是這個程序的命令行退出狀態。
F. 如何在shell腳本中,判斷一個基本命令執行是否成功
1.連接到相應的Linux主機,進入Linux命令行狀態,等待shell命令的輸入。
G. shell腳本執行sql傳出結果
shell腳本執行sql需要輸出結果,可以在shell腳本中寫入語句,執行完成sql語句後,結果定向輸入到一個txt文本文件中,再把txt文本文件存放在固定的文件夾中即可。
H. 如何在shell腳本中,判斷一個基本命令執行是否成功
用特殊變數:$?
判斷前一個命令的執行是否成功(或者說是返回碼)
執行成功變數的值是0,不是零表示沒有執行成功
例如:
注意:一定要在命令執行後立即判斷,否則後面的代碼會沖掉$?變數的值。
I. 在shell腳本中使用 isql 執行SQL語句 查詢sybase資料庫中滿足條件的記錄條數,怎麼把查詢結果賦給變數
注意此處:
isql -U natuser -P zjtt@nat -S natdb <<END
如下供參考
·1 若要重定向到文件
isql -U natuser -P zjtt@nat -S natdb <<END >out.txt
即將查詢結果重定向到out.txt文件中
·2若要輸出至變數
isql -U natuser -P zjtt@nat -S natdb <<END |read xarg
·3若要循環輸出至變數,可參照read方式類推
J. shell腳本怎麼獲取sql select count(*)語句的結果
單引號換成雙引號:
echo 「select count(*) from ${tablename};」 | sqlplus $ACCOUNT/$PASSWORD@$ORACLE_LOGIP:1521/$SID > ${TMPFILE}