當前位置:首頁 » 存儲配置 » shell調用存儲過程

shell調用存儲過程

發布時間: 2025-10-04 00:04:47

A. oracle存儲過程中調用一個shell腳本,用於進行一些操作,已經賦許可權,但是執行不了

shell的環境變數問題,你在shell內部的變數是獲取不到外部執行結果的。

B. shell中怎麼獲取存儲過程的輸出參數給變數

#下面的代碼是對於從oracle的sqlplus返回變數值給shell的例子
output=`sqlplus -s unitele/lemontea << EOF
set heading off feedback off verify off
drop function test_get_param_value_p;
CREATE OR REPLACE function test_get_param_value_p
(
is_citycode in varchar2
)
return varchar2
is
on_value varchar2(100);
begin
on_value :='100000';
dbms_output.put_line(on_value);
dbms_output.put_line(is_citycode);
return on_value;
end;
/
select test_get_param_value_p('501') from al;
exit
EOF
`
echo "Oracle的輸出變數值:"$output
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=
存儲過程 myproc(in_num in number,out_num out number)
sql腳本模板
先編輯一個mysql.sql文件,內容如下:
------------
var nret number;
execute :nret := 0;--初始化
call myproc(in_code,:nret)--執行存儲過程,in_code會被替換掉
/
select 'retcode[' || :nret || ']retcode' from al--顯示結果
/
quit;
-------------
SHELL腳本mysh.sh,內容如下
-------------
#./mysh.sh 123
cd /home/myshell
sed "s/in_code/$1/" mysql.sql > mysql01.sql
#根據sql腳本模板生成實際腳本
sqlplus usr/pwd@db result$1.txt
#執行sql腳本並把結果輸入result$1.txt
echo ok!
-------------
在LINUX下執行./mysh.sh 123,生成result123.txt,myproc輸出參數在'retcode['和']retcode'之間。

熱點內容
java返回this 發布:2025-10-20 08:28:16 瀏覽:718
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:983
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:690
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:845
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:750
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:1090
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:319
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:199
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:887
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:846