如何使用Ruby腳本調用Oracle存儲過程
1.首先創建Oracle存儲過程test:
SQL> CREATE OR REPLACE PROCEDURE test(p1 in varchar2,p2 out varchar2 ) is2 BEGIN3 select p1||' PROCEDURE EXECUTED!' into p2 from dual ;4 end;5 /Procedure created
2.再寫Ruby腳本,調用存儲過程test,腳本內容如下,將腳本保存為:Call_proc_test.rb:
require 'dbi'db_read_str = 'BEGIN test(?, ?); END;'dbh = DBI.connect('DBI:OCI8:TNSDBNAME', 'username', 'password')sth_db = dbh.prepare(db_read_str)sth_db.bind_param(1, 'test:',''*50) # allow for up to 50 charssth_db.bind_param(2, ' ' * 100) # allow for up to 100 charssth_db.executestr = sth_db.func(:bind_value, 2)puts strdbh.disconnect
3.檢查Ruby語法錯誤:
C:>ruby -cw Call_proc_test.rbSyntax OKC:>
4.最后執行Ruby腳本:
C:>ruby Call_proc_test.rbtest: PROCEDURE EXECUTED!C:>
注釋:如果是Windows環境下,大家也可以通過雙擊Call_proc_test.rb 文件來運行Ruby腳本。