因應和介接系統的API stored procedure修改,將原本的回傳參數型態由oracle cursor
改成oracleobject,機歪老闆又把這項雜事丟給我,要我測試在我們的系統上是否可行。
雖然網路上的參考文獻很多,不過大部分都是傳送或接收陣列型態的參數給stored procedure,
所以花了一些功夫整理了一下關鍵的內容。
conn = this.getConnectionAdapter().getNewConnection();
vendorConn = (OracleConnection)((WLConnection)conn).getVendorConnection();
call = (OracleCallableStatement)vendorConn.prepareCall(" begin twm_pg_ec_test.pc_get_oracle_object_demo(?,?) ; end;"); //引號內是stored procedure
//的名稱,問號是傳給他即接受的對應參數。
call.setString(1, "EC");//設定第一個參數
call.registerOutParameter(2, OracleTypes.STRUCT, "ECUSER2.EMPLOYEETYPE");
//設定第二個回傳的參數,同時指定他在資料庫上的object type(第二個參數)
call.executeQuery();
oracle.sql.STRUCT emp = (oracle.sql.STRUCT)call.getObject(2); //解析回傳的第二個參數
oracle.sql.Datum[] attrs = emp.getOracleAttributes();//取得所有oracle object的屬性
//取得oracle object屬性的值
int id= attrs[0].intValue();
String firstName = attrs[1].stringValue();
String lastName = attrs[2].stringValue();
java.util.Date dob = attrs[3].dateValue();
String phone = attrs[4].stringValue();
2010年6月1日 星期二
[筆記]如何用java呼叫oracle store procedure並接收 oracle object的回傳參數
張貼者: kinju 於 6/01/2010 03:22:00 下午 0 意見
標籤: 筆記
2010年5月24日 星期一
關於愛情
很多人問我為什麼不去交個女朋友?我總是無奈的苦笑回答:「或許是緣分還沒到吧!?」
可能是金星在金牛的關係,也可能是過去努力追求的經驗都不太好,總之在這方面
我總是顯的十分的被動,catch板、星座板的文章也看了不少,總覺得一直都是原地
踏步,單身太久了,真的會成為習慣,而我似乎也早已被習慣所束縛,並沒有積極
改變自己生活的想法與動機。
最近得知原本頗有好感的女生死會的消息,雖然有些許遺憾,但是也只能給予祝福,
我自認為也有花了許多時間和精力在她身上,可能我想表達的他未能感受,
而她想透露給我的訊息我無法做出正確的判讀,或許就如星座書上寫的:「
基本宮與變動宮本質上是無法取悅對方的。」
請原諒我總是不解風情.....
張貼者: kinju 於 5/24/2010 11:00:00 下午 2 意見
標籤: 心情隨筆
訂閱:
文章 (Atom)