當前位置:首頁 » 編程軟體 » 腳本怎麼指定返回值

腳本怎麼指定返回值

發布時間: 2023-09-08 16:35:30

① 如何在pb腳本當中獲取存儲過程的返回值

本文擬以SYBASE ASE 10.X和11.X資料庫為例,說明如何在PB腳本當中獲取存儲過程的返回值。作為一個存儲過程,其輸出的結果數據可能包括三類:SELECT結果集、RETURN結果、OUTPUT參數。盡管輸出方式眾多,但PB腳本僅僅藉助簡單的FETCH…INTO…語句即可全部獲取這些輸出數據,具體方式如下:
(一)在SYBASE ASE 10.X和11.X資料庫當中創建一個存儲過程deptroster,其有一個輸入參數@deptno、兩個輸出參數@totsal 和 @avgsal、一個RETURN值@number_of_emps以及包含職員姓名和工資的SELECT結果集,可見除了輸入參數@deptno外,其他均為輸出數據,我們需要在PB腳本中獲取,具體代碼如下:

CREATE PROCEDURE deptroster @deptno integer,

@totsal double precision output,

@avgsal double precision output

AS

DECLARE @number_of_emps integer

SELECT emp_fname, emp_lname, salary FROM employee

WHERE dept_id = @deptno

SELECT @totsal = sum(salary),

@avgsal = avg(salary),

@number_of_emps = COUNT(*) FROM employee

WHERE dept_id = @deptno

RETURN @number_of_emps;
二)PB腳本當中我們需要捕獲SELECT結果集、RETURN值和兩個輸出參數,其輸出順序也是按照「SELECT結果集、RETURN值、輸出參數」順序輸出,具體代碼如下:

integer fetchcount = 0

long lDeptno, rc

string fname, lname

double dSalary, dTotSal, dAvgSal

lDeptno = 100

//此處聲明存儲過程名稱

DECLARE deptproc PROCEDURE FOR
@rc = dbo.deptroster

@deptno = :lDeptno,

@totsal = 0 output,

@avgsal = 0 output

USING sqlCA;

//此處開始執行存儲過程

EXECUTE deptproc;

//判斷執行結果

CHOOSE CASE SQLCA.sqlcode
CASE 0

//如果返回0則表示執行成功,至少存在一個SELECT結果集

//藉助LOOP循環開始捕獲這個SELECT結果集

DO

FETCH deptproc INTO :fname, :lname, :dSalary;

CHOOSE CASE SQLCA.sqlcode

CASE 0

fetchcount++

CASE 100

MessageBox ("End of Result Set", &

string (fetchcount) " rows fetched")

CASE -1

MessageBox ("Fetch Failed", &

//此處關閉存儲過程

CLOSE deptproc;

CASE 100

// 如果返回100,則表示沒有返回結果集.

// 此時不需要單獨執行CLOSE語句.

MessageBox ("Execute Successful", "No result set")

CASE ELSE

//其他情況則表示存儲過程執行失敗,提示用戶即可

MessageBox ("Execute Failed", &

string (SQLCA.sqldbcode) " = " &

② 求問expect腳本怎麼設置返回值

比如下面腳本用來做ssh無密碼登陸,自動輸入確認yes和密碼信息,用戶名,密碼,hostname通過參數來傳遞
ssh.exp Python代碼 #!/usr/bin/expect set timeout 10 set username [lindex $argv 0] set password [lindex $argv 1] set hostname [lindex $argv 2] spawn ssh--id -i .ssh/id_rsa.pub $username@$hostname expect "yes/no" send "yes\r" expect "password:" send "$password\r" expect eof執行腳本./ssh.exp root pasword hostname1

expect接收參數的方式和bash腳本的方式不太一樣,bash是通過$0 ... $n 這種方式,而expect是通過set <變數名稱> [lindex $argv <param index>],例如set username [lindex $argv 0]

③ shell腳本如何獲取狀態碼返回值,如ok或error

樓上說的貌似沒錯,我沒去執行看具體報什麼錯。

用awk是可以的,你需要用-F指定分隔符,然後再輸出第幾個串,樓上用的雙引號作為分隔符,然後輸出第四個串,應該是沒問題的。
或者你也可以用其他語言,比如php,json_decode函數將這個穿轉成數組,然後輸入code的值,更加直觀。

④ 每天三分鍾搞定linux shell腳本26 函數返回值

函數可以產生返回值,有3個方法。
1)默認情況下是 最後一條語句對應的退出狀態碼
2) return 一個整數值
3)使用 echo語句 指定輸出
針對 方法1 建立如下腳本:

運行後輸出結果為:

針對 方法2 建立腳本:

運行後結果為:

針對 方法3 建立腳本

運行後輸出結果為:

方法3使用echo語句來返回結果,而且 並沒有把這個輸出到stdout 中。

函數返回數組與參數傳遞數組一樣,使用echo語句。舉例如下:

運行後輸出結果為:

熱點內容
wifi無法上網怎麼配置網路 發布:2024-11-19 20:25:38 瀏覽:437
我的世界網易手機好玩的pvp伺服器 發布:2024-11-19 20:09:29 瀏覽:331
安卓手機微信怎麼改號 發布:2024-11-19 19:56:13 瀏覽:91
python的字元串輸出 發布:2024-11-19 19:48:41 瀏覽:630
android的簽名 發布:2024-11-19 19:47:10 瀏覽:489
padavan內核修改編譯 發布:2024-11-19 19:46:53 瀏覽:219
apex正在載入並編譯著色器閃退 發布:2024-11-19 19:40:13 瀏覽:282
android導圖 發布:2024-11-19 19:37:48 瀏覽:975
雲伺服器慢慢變卡 發布:2024-11-19 19:32:33 瀏覽:664
如何找到伺服器參數 發布:2024-11-19 19:19:33 瀏覽:678