Oracle數(shù)據(jù)庫(kù)增刪集合元素的Java實(shí)現(xiàn)方法
作者:佚名
本文我們主要介紹了Oracle數(shù)據(jù)庫(kù)中增刪集合元素的一個(gè)Java源程序的示例,通過這個(gè)示例,我們可以實(shí)現(xiàn)Oracle數(shù)據(jù)庫(kù)增刪集合元素的操作,希望能夠?qū)δ兴鶐椭?/div>
Oracle數(shù)據(jù)庫(kù)中增刪集合元素的操作該如何實(shí)現(xiàn)呢?其實(shí)利用Java Function就可以輕松的實(shí)現(xiàn),本文我們就主要介紹這一實(shí)現(xiàn)方法。
源程序如下:
- package zgdx.action; import java.math.BigDecimal;
- import java.sql.Array;
- //import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.SQLException;
- import java.util.ArrayList;
- import java.util.logging.Level;
- import java.util.logging.Logger;
- import oracle.jdbc.*;
- import oracle.sql.ARRAY;
- import oracle.sql.ArrayDescriptor; public class OraTools {
- static public Array addElementOfArray(ARRAY ary, Object e){
- try {
- Object[] bigs = null;
- if(ary==null) bigs = new Object[0];
- else bigs = (Object[]) ary.getArray();
- for(int i=0; i<bigs.length; i++)
- if(e.equals(bigs[i])){ return ary; }
- Object[] objs = new Object[bigs.length+1];
- for(int i=0; i<bigs.length; i++) objs[i] = bigs[i];
- objs[objs.length-1] = e;
- OracleConnection conn = (OracleConnection) DriverManager.getConnection("jdbc:default:connection:");
- //((OracleConnection)conn.unwrap(OracleConnection.class))
- //Array arr = conn.createARRAY(typeName.toUpperCase(), objs ); //11g r1
- Array arr = new ARRAY(ArrayDescriptor.createDescriptor( ary.getSQLTypeName(), conn), conn, objs);
- return arr;
- } catch (SQLException ex) {
- //Logger.getLogger(OraTools.class.getName()).log(Level.SEVERE, null, ex);
- System.err.println("ERROR! addElementOfVarray: " + ex.getMessage());
- return ary; } static public Array delElementOfArray(ARRAY ary, Object e){
- try {
- if( ary==null) return null;
- Object[] bigs = (Object[]) ary.getArray();
- ArrayList list = new ArrayList(bigs.length);
- for(int i=0; i<bigs.length; i++)
- if( ! e.equals(bigs[i])){ list.add(bigs[i]); }
- if(list.size()==bigs.length) return ary;
- Object[] objs = list.toArray();
- OracleConnection conn = (OracleConnection) DriverManager.getConnection("jdbc:default:connection:");
- //Array arr = conn.createARRAY(typeName.toUpperCase(), objs ); //11g r1
- Array arr = new ARRAY(ArrayDescriptor.createDescriptor(ary.getSQLTypeName(), conn), conn, objs);
- return arr;
- } catch (SQLException ex) {
- System.err.println("ERROR! addElementOfVarray: " + ex.getMessage());
- return ary; }
- }
然后發(fā)布:loadjava -f -v -user username/passwd -r OraTools.java
建call spec:
- CREATE OR REPLACE function addElementOfInt_nt(ary int_nt, dept_id NUMBER)
- return int_nt AS LANGUAGE JAVA NAME 'zgdx.action.OraTools.addElementOfArray(java.sql.Array, java.lang.Object) return java.sql.Array';
測(cè)試:update test1 set cates = addElementOfInt_nt(cates, 10) where code=1;
關(guān)于Oracle數(shù)據(jù)庫(kù)中增刪集合元素的Java Function的實(shí)現(xiàn)方法就介紹到這里了,希望本次的介紹能夠?qū)δ兴鶐椭?/p>
【編輯推薦】
- Oracle數(shù)據(jù)庫(kù)AWR的使用實(shí)例詳解
- Oracle數(shù)據(jù)庫(kù)ASH和AWR的簡(jiǎn)單介紹
- Oracle數(shù)據(jù)庫(kù)通過在線重定義的方法新增字段詳解
- Oracle數(shù)據(jù)庫(kù)中AWR的組成及工作原理的詳細(xì)介紹
- Oracle數(shù)據(jù)庫(kù)Constraint約束的常用操作及異常處理
責(zé)任編輯:趙鵬
來(lái)源:
火魔網(wǎng)


相關(guān)推薦




