2012-08-16 11:14:11 来源:速途网
Oracle数据库中增删集合元素的操作该如何实现呢?其实利用Java Function就可以轻松的实现,本文我们就主要介绍这一实现方法。
源程序如下:
以下是代码片段:
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
if(e.equals(bigs[i])){ return ary; }
Object[] objs = new Object[bigs.length+1];
for(int i=0; i
objs[objs.length-1] = e;
[page] 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
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
[page] 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; }
}
然后发布: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';
测试:update test1 set cates = addElementOfInt_nt(cates, 10) where code=1;
关于Oracle数据库中增删集合元素的Java Function的实现方法就介绍到这里了,希望本次的介绍能够对您有所帮助。
免责声明:本网站(http://www.ciotimes.com/)内容主要来自原创、合作媒体供稿和第三方投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。