一个简单的java调用储存过程
package com.topband.testmain; import java.sql.CallableStatement; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.sql.Types; public class t { public static void main(String[] args ){ String driver = "oracle.jdbc.driver.OracleDriver"; String strUrl = "jdbc:oracle:thin:@192.168.8.88:1521: testoa"; Statement stmt = null; ResultSet rs = null; Connection conn = null; System.out.println("输出值"); try { Class.forName(driver); conn = DriverManager.getConnection(strUrl, "数据库名", "密码"); CallableStatement proc = null; proc = conn.prepareCall("{ call prc_tbtest(?)}"); if(proc != null) { proc.registerOutParameter(1,Types.INTEGER); proc.execute(); //提交存储过程 String testPrint = proc.getString(1); System.out.println("输出值"+testPrint); } } catch (SQLException ex2) { ex2.printStackTrace(); } catch (Exception ex2) { ex2.printStackTrace(); } finally{ try { if(rs != null){ rs.close(); if(stmt!=null){ stmt.close(); } if(conn!=null){ conn.close(); } } } catch (SQLException ex1) { } } } }
create or replace procedure prc_tbtest(res out int) is num_count int; begin execute immediate ' select count(*) from whir$hrresume ' into num_count; if num_count >0 then res :=1; else res :=2; end if; END prc_tbtest;
批量储存
package com.topband.testmain; import java.sql.*; import java.util.ArrayList; import java.util.List; import com.topband.zhugx.model.POItemBean; public class CCGC1 { public static void main(String arg[]) { long t1 = System.currentTimeMillis(); List itemlist= new ArrayList(); //********取值方法未上传 try { Class.forName("oracle.jdbc.driver.OracleDriver"); String url = "jdbc:oracle:thin:@192.168.8.88:1521: testoa"; Connection con = DriverManager.getConnection(url, "数据库","密码"); CallableStatement pstmt = null; String sql = "{call po_itemone(?,?,?,?)}"; pstmt = con.prepareCall(sql); Object[][] object1 = new Object[1][28]; for (int i = 0; i < 1; i++) { POItemBean itembean = (POItemBean) itemlist.get(i); // object1[i][0] = itembean.getEBELN(); // object1[i][1] = itembean.getEBELP(); // object1[i][2] = itembean.getMATNR(); // object1[i][3] = itembean.getMEINS(); // object1[i][4] = itembean.getNETPR(); // object1[i][5] = itembean.getZPEICE_TOTAL(); // object1[i][6] = itembean.getSTPRS(); // object1[i][7] = itembean.getLOEKZ(); // object1[i][8] = itembean.getELIKZ(); // object1[i][9] = itembean.getRETPO(); // object1[i][10] = itembean.getREMARK2(); // object1[i][11] = itembean.getBANFN(); // object1[i][12] = itembean.getLGORT(); // object1[i][13] = itembean.getWERKS(); // object1[i][14] = itembean.getZMAKTX(); // object1[i][15] = itembean.getMENGE_PR(); // object1[i][16] = itembean.getMENGE(); // object1[i][17] = itembean.getSLCY(); // object1[i][18] = itembean.getJGCY(); // object1[i][19] = itembean.getWAERS(); // object1[i][20] = itembean.getKBETR(); // object1[i][21] = itembean.getEINDT(); // object1[i][22] = itembean.getMATKL(); // object1[i][23] = itembean.getYJHSL(); // object1[i][24] = itembean.getWJHSL(); // object1[i][25] = itembean.getSjjh(); // object1[i][26] = itembean.getPodesc(); // object1[i][27] = itembean.getWj(); object1[i][0] = "88"; object1[i][1] = "10"; object1[i][2] = "10"; object1[i][3] = "10"; object1[i][4] = "10"; object1[i][5] = "10"; object1[i][6] = "10"; object1[i][7] = "10"; object1[i][8] = "10"; object1[i][9] = "10"; object1[i][10] = "10"; object1[i][11] = "10"; object1[i][12] = "10"; object1[i][13] = "10";; object1[i][14] = "10"; object1[i][15] = "10"; object1[i][16] = "10"; object1[i][17] = "10"; object1[i][18] = "10"; object1[i][19] = "10"; object1[i][20] = "10"; object1[i][21] ="10"; object1[i][22] = "10"; object1[i][23] = "10"; object1[i][24] = "10"; object1[i][25] = "10"; object1[i][26] = "10"; object1[i][27] = "10"; } String usid = "2222"; String org = "33333"; oracle.sql.ArrayDescriptor desc = oracle.sql.ArrayDescriptor.createDescriptor("ARRAY_OBJECT2", con); oracle.sql.ARRAY array = new oracle.sql.ARRAY(desc, con, object1); pstmt.setArray(1, array); pstmt.setString(2, usid); pstmt.setString(3, org); pstmt.registerOutParameter(4, java.sql.Types.INTEGER); pstmt.executeUpdate(); String testPrint = pstmt.getString(4); System.out.println("输出值"+testPrint); } catch (Exception e) { e.printStackTrace(); } //System.out.println(System.currentTimeMillis() - t1); } }
批量储存过程
---创建类型对应java list create or replace type srm_item as object( WHIR$SRMPOITEM_TBEBELN VARCHAR2(255), WHIR$SRMPOITEM_TBEBELP INTEGER, WHIR$SRMPOITEM_MATNR VARCHAR2(255), WHIR$SRMPOITEM_MEINS VARCHAR2(255), WHIR$SRMPOITEM_NETPR NUMBER, WHIR$SRMPOITEM_ZPEICE_TO NUMBER, WHIR$SRMPOITEM_STPRS NUMBER, WHIR$SRMPOITEM_LOEKZ VARCHAR2(255), WHIR$SRMPOITEM_ELIKZ VARCHAR2(255), WHIR$SRMPOITEM_RETPO VARCHAR2(255), WHIR$SRMPOITEM_REMARK2 VARCHAR2(255), WHIR$SRMPOITEM_BANFN VARCHAR2(255), WHIR$SRMPOITEM_LGORT VARCHAR2(255), WHIR$SRMPOITEM_WERKS VARCHAR2(255), WHIR$SRMPOITEM_ZMAKTX VARCHAR2(255), WHIR$SRMPOITEM_MENGE_PR INTEGER, WHIR$SRMPOITEM_MENGE INTEGER, WHIR$SRMPOITEM_SLCY INTEGER, WHIR$SRMPOITEM_JGCY NUMBER, WHIR$SRMPOITEM_WAERS VARCHAR2(255), WHIR$SRMPOITEM_KBETR VARCHAR2(255), WHIR$SRMPOITEM_EINDT VARCHAR2(255), WHIR$SRMPOITEM_MATKL VARCHAR2(255), WHIR$SRMPOITEM_YJHSL INTEGER, WHIR$SRMPOITEM_WJHSL INTEGER, WHIR$T3067_F3368 VARCHAR2(255), WHIR$T3067_PODESC VARCHAR2(500), WHIR$T3067_FOREIGNKEY NUMBER(20) ); --绑定类型 CREATE OR REPLACE TYPE ARRAY_object2 AS table OF srm_item create or replace procedure po_itemone( i_item in array_object2,res out int --item 列表 array_object2 在上述定义过 whir$SRMPOITEM_WJHSL = '||i_item(i).whir$SRMPOITEM_WJHSL||' - whir$SRMPOITEM_ZTSL, ) is num_count int; zero int; begin for i in 1..i_item.count loop execute immediate 'select count(*) from whir$t3067 where whir$SRMPOITEM_TBEBELN = '''|| i_item(i).WHIR$SRMPOITEM_TBEBELN||''' and whir$SRMPOITEM_TBEBELP = '|| i_item(i).WHIR$SRMPOITEM_TBEBELP into num_count; if num_count >0 then res :=1; execute immediate 'update whir$t3067 set whir$SRMPOITEM_MATNR = '''||i_item(i).whir$SRMPOITEM_MATNR||''', whir$SRMPOITEM_MEINS = '''||i_item(i).whir$SRMPOITEM_MEINS||''', whir$SRMPOITEM_NETPR = '||i_item(i).whir$SRMPOITEM_NETPR||', whir$SRMPOITEM_ZPEICE_TO = '||i_item(i).whir$SRMPOITEM_ZPEICE_TO||', whir$SRMPOITEM_STPRS = '||i_item(i).whir$SRMPOITEM_STPRS||', whir$SRMPOITEM_LOEKZ = '''||i_item(i).whir$SRMPOITEM_LOEKZ||''', whir$SRMPOITEM_ELIKZ = '''||i_item(i).whir$SRMPOITEM_ELIKZ||''', whir$SRMPOITEM_RETPO = '''||i_item(i).whir$SRMPOITEM_RETPO||''', whir$SRMPOITEM_REMARK2 = '''||i_item(i).whir$SRMPOITEM_REMARK2||''', whir$SRMPOITEM_BANFN = '''||i_item(i).whir$SRMPOITEM_BANFN||''', whir$SRMPOITEM_LGORT = '''||i_item(i).whir$SRMPOITEM_LGORT||''', whir$SRMPOITEM_WERKS = '''||i_item(i).whir$SRMPOITEM_WERKS||''', whir$SRMPOITEM_ZMAKTX = '''||i_item(i).whir$SRMPOITEM_ZMAKTX||''', whir$SRMPOITEM_MENGE_PR = '||i_item(i).whir$SRMPOITEM_MENGE_PR||', whir$SRMPOITEM_MENGE = '||i_item(i).whir$SRMPOITEM_MENGE||', whir$SRMPOITEM_SLCY = '||i_item(i).whir$SRMPOITEM_SLCY||', whir$SRMPOITEM_JGCY = '||i_item(i).whir$SRMPOITEM_JGCY||', whir$SRMPOITEM_WAERS = '''||i_item(i).whir$SRMPOITEM_WAERS||''', whir$SRMPOITEM_KBETR = '''||i_item(i).whir$SRMPOITEM_KBETR||''', whir$SRMPOITEM_EINDT = '''||i_item(i).whir$SRMPOITEM_EINDT||''', whir$SRMPOITEM_MATKL = '''||i_item(i).whir$SRMPOITEM_MATKL||''', whir$SRMPOITEM_YJHSL = '||i_item(i).whir$SRMPOITEM_YJHSL||', whir$SRMPOITEM_WJHSL = '||i_item(i).whir$SRMPOITEM_WJHSL||' - whir$SRMPOITEM_ZTSL, whir$t3067_f3368 = '''||i_item(i).whir$t3067_f3368||''', whir$t3067_PODESC = '''||i_item(i).whir$t3067_PODESC||''' where whir$SRMPOITEM_TBEBELN = '''||i_item(i).WHIR$SRMPOITEM_TBEBELN||''' and whir$SRMPOITEM_TBEBELP = '||i_item(i).WHIR$SRMPOITEM_TBEBELP; else -- select WF_SEQUENCE.nextVal into var_item_id from dual; --取索引下表 zero :=0; res :=2; execute immediate 'insert into whir$t3067(whir$t3067_ID, whir$t3067_OWNER, whir$t3067_ORG, whir$SRMPOITEM_TBEBELN, whir$SRMPOITEM_TBEBELP, whir$SRMPOITEM_MATNR, whir$SRMPOITEM_MEINS, whir$SRMPOITEM_NETPR, whir$SRMPOITEM_ZPEICE_TO, whir$SRMPOITEM_STPRS, whir$SRMPOITEM_LOEKZ, whir$SRMPOITEM_ELIKZ, whir$SRMPOITEM_RETPO, whir$SRMPOITEM_REMARK2, whir$SRMPOITEM_BANFN, whir$SRMPOITEM_LGORT, whir$SRMPOITEM_WERKS, whir$SRMPOITEM_ZMAKTX, whir$SRMPOITEM_MENGE_PR, whir$SRMPOITEM_MENGE, whir$SRMPOITEM_SLCY, whir$SRMPOITEM_JGCY, whir$SRMPOITEM_WAERS, whir$SRMPOITEM_KBETR, whir$SRMPOITEM_EINDT, whir$SRMPOITEM_MATKL, whir$SRMPOITEM_YJHSL, whir$SRMPOITEM_WJHSL, whir$SRMPOITEM_ZTSL, whir$t3067_PODESC, WHIR$T3067_FOREIGNKEY)values(hibernate_sequence.nextval,'||zero||','''||zero||''', '''||i_item(i).whir$SRMPOITEM_TBEBELN||''', '||i_item(i).whir$SRMPOITEM_TBEBELP||', '''||i_item(i).whir$SRMPOITEM_MATNR||''', '''||i_item(i).whir$SRMPOITEM_MEINS||''', '||i_item(i).whir$SRMPOITEM_NETPR||', '||i_item(i).whir$SRMPOITEM_ZPEICE_TO||', '||i_item(i).whir$SRMPOITEM_STPRS||', '''||i_item(i).whir$SRMPOITEM_LOEKZ||''', '''||i_item(i).whir$SRMPOITEM_ELIKZ||''', '''||i_item(i).whir$SRMPOITEM_RETPO||''', '''||i_item(i).whir$SRMPOITEM_REMARK2||''', '''||i_item(i).whir$SRMPOITEM_BANFN||''', '''||i_item(i).whir$SRMPOITEM_LGORT||''', '''||i_item(i).whir$SRMPOITEM_WERKS||''', '''||i_item(i).whir$SRMPOITEM_ZMAKTX||''', '||i_item(i).whir$SRMPOITEM_MENGE_PR||', '||i_item(i).whir$SRMPOITEM_MENGE||', '||i_item(i).whir$SRMPOITEM_SLCY||', '||i_item(i).whir$SRMPOITEM_JGCY||', '''||i_item(i).whir$SRMPOITEM_WAERS||''', '''||i_item(i).whir$SRMPOITEM_KBETR||''', '''||i_item(i).whir$SRMPOITEM_EINDT||''', '''||i_item(i).whir$SRMPOITEM_MATKL||''', '||zero||', '||i_item(i).whir$SRMPOITEM_WJHSL||', '||zero||', '''||i_item(i).whir$t3067_PODESC||''', '||i_item(i).WHIR$T3067_FOREIGNKEY||')'; end if; end loop; END po_itemone;
相关推荐
1.FORALL 用法小结 2.如何使用批挷定提高性能 3.FORALL 如何影响回滚 4.用%BULK_ROWCOUNT 属性计算FORALL迭代影响行数 ,用%BULK_ROWCOUNT 属性计算FORALL迭代影响行数 ...9.给Oracle存储过程传入数组(这是自己的)
自己在java学习过程中的笔记,从最基础的创建java环境,java的基础知识,java变量的内存存储过程,到容器,异常,多线程等都有详尽涉及。 Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里...
《Java JDK 7学习笔记》详细介绍了JVM、JRE、Java SE API、JDK与IDE之间的对应关系。必须要时从Java SE API的源代码分析,了解各种语法在Java SE API中如何应用。 《Java JDK 7学习笔记》将IDE操作纳为教学内容...
存储过程的笔记,很详细,照着代码敲,包含代码和解释,看看吧!
第七章 PL/SQL存储过程................374 第八章 PL/SQL包.380 第九章 PL/SQL触发器....................382 第十章 动态PL/SQL........................383 ant学习笔记...................387 Web Service学习...
这一约束限制了程序的灵活性,所以虽然某些java数据存储于堆栈中——特别是对象引用,但是java对象并不存储其中。 3) 堆 一种通用的内存池(也位于RAM区),用于存放所有的java对象。堆不同于堆栈的好处是:编译器...
当你产生某个存储对象的数组时,真正产生的其实是存储reference的数组。引数组建立后,其中的每一个reference都会被自动设为null,表示“不指向任何对象”。 二.建立新的数据型别:Class 1. 数据成员和函数 1.1...
2.3 线程本地存储(Java.lang.ThreadLocal) 15 2.4 线程阻塞 17 2.4.1 调用sleep(millisecond)使任务进入休眠状态 17 2.4.2 等待输出与输入 17 2.4.3 对象锁不可用 17 2.4.4 通过wait()使线程挂起。 17 2.5 线程...
Java云笔记项目是一个基于云技术的在线笔记管理系统。...数据同步与云存储:用户的笔记数据会被存储在云端,确保用户可以随时随地访问和编辑自己的笔记。系统提供数据同步功能,可以在不同设备之间
简单的存储过程的创建与开发,培训学校的笔记,适合初学者
Java数据结构和算法 第0讲 综述 参考教材:Java数据结构和算法(第二版),[美] Robert lafore 1. 数据结构的特性 "数据结构"优点 "缺点 " "数组 "插入快;如果知道下标,可以非常快"查找慢,删除慢,大小固定" " ...
吸收了C / C ++语言的特点但是去掉了其影响程序健壮性的部分(例如指针,内存申请与释放等),提供了一个相对安全的内存管理和访问机制 特点三:跨平台性 通过Java语言编写的应用程序在不同的系统平台上都能够运行。...
数据迁移过程中如何保证不影响其他服务) *事务与并发控制(如何实现并发控制?如何实现多版本并发控制) *易用性(如何对外设计接口是的系统容易使用?如何设计监控系统并将系统的内容状态方便的形式暴露给运维...
(狂神)ElasticSearch快速入门笔记,ElasticSearch基本操作以及爬虫(Java-ES仿京东实战),包含了小狂神讲的东西,特别适合新手学习,笔记保存下来可以多看看。好记性不如烂笔头哦~,ElasticSearch,简称es,es是一个...
JDBC的目标是使Java程序员使用JDBC可以连接任何提供了JDBC驱动程序的数据库系统, 这样就使得程序员无需对特定的数据库系统的特点有过多的了解,从而大大简化和加快了开发过程。 总结: JDBC本身是java连接数据库...
简单性:因为Java是在C++的基础上进行优化的语言,它既保留了C++强大的开发功能,还剔除了一些程序员工作时比较少用的特征。面向对象:Java是一门面向对象的语言...Java不支持指针,它消除重写存储和讹误数据的可能性;
JavaThings-Java安全漫谈笔记相关《 Java安全漫谈》是我在写的一点Java学习相关的随笔,不是很严谨,也不是啥高科技。这个存储库主要是记录并整理一下,附加一些代码。Java安全漫谈目录 人口统计字节码:远程字节码...
Java基础:Java概念、基础语法、面向对象的理解、String类、Object类、序列化、泛型、注解与反射、JDK1.8新特性等;Java集合:List底层实现、Map底层实现等;Java并发编程:ThreadLocal、Java内存模型、锁、并发工具...
JAVA的面向对象编程--------课堂笔记 面向对象主要针对面向过程。 面向过程的基本单元是函数。 什么是对象:EVERYTHING IS OBJECT(万物皆对象) 所有的事物都有两个方面: 有什么(属性):用来描述对象。 能够做...
变量是程序中用来存储数据的容器,可以是基本类型或引用类型,Java中的变量需要先声明后使用,声明变量时需要指定变量的类型和名称。变量的命名需要遵循一定的规则,如不能以数字开头,不能使用关键字作为变量名等...