一个简单的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;
相关推荐
【JAVA与Sql学习笔记】 在Java编程中,与SQL数据库的交互是不可或缺的一部分。这篇学习笔记主要关注如何在Oracle数据库中使用PL/SQL的FORALL语句进行批量操作,以及如何利用批绑定(Bulk Binding)来提升性能。此外...
【Java编程基础】 ...以上是黑马Java教程知识点笔记的主要内容,涵盖了Java编程的基础到进阶知识,是学习和巩固Java技能的重要参考资料。通过深入理解和实践这些知识点,开发者可以逐步提升Java编程能力。
【Java学习笔记Markdown版】是针对Java初学者和进阶者的一份详尽教程,以Markdown格式编写,便于阅读和整理。Markdown是一种轻量级的标记语言,它允许用户使用易读易写的纯文本格式编写文档,然后转换成结构化的HTML...
【Java笔记桌面程序】 在IT领域,开发个人定制的桌面应用程序是解决特定需求的有效方法。本项目名为"Java笔记桌面程序",它是由一个热衷于编程的开发者为解决其所在公司无法使用网络笔记客户端的问题而自创的。这个...
而将Java代码整理后存入有道云笔记的过程,既可以帮助开发者整理学习和工作中的代码,也能便于和其他开发者分享交流。 在这个过程中,首先需要使用一个能够处理和格式化代码的工具,如在线代码高亮工具,它能够将...
### Java 基础笔记 #### 位运算符 在Java中,位运算符用于处理整数的二进制位。主要包括左移`、右移`>>`以及无符号右移`>>>`。 - **左移运算符 `**:将一个数的二进制表示向左移动指定的位数,高位被丢弃,低位用...
与之相对的是面向过程编程,它侧重于函数和过程。 ##### 6.2 对象的概念 对象是类的实例,包含了该类的所有属性和方法。 ##### 6.3 成员变量和局部变量 - **成员变量**:定义在类中的变量。 - **局部变量**:...
"Java基础的详细案例笔记"无疑是一份宝贵的资源,它涵盖了学习Java过程中最核心的概念和实战技巧。这份笔记可能是作者在学习过程中对每个关键知识点的理解与实践总结,对于自我学习或教学都是极具价值的。 首先,...
在程序运行过程中,可能会遇到各种错误,Java通过异常处理机制来捕获并处理这些错误。try-catch-finally语句块用于定义可能出现异常的代码段,catch块捕获异常并进行处理,finally块则确保某些代码无论是否发生异常...
Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems(现为Oracle公司的一部分)于1995年发布。...Java学习笔记涵盖了这些核心知识点,通过深入学习和实践,你可以逐步掌握Java编程,并应用于实际项目开发中。
Java学习笔记 Java是一种流行的编程语言,广泛应用于Android应用程序开发、Web应用程序开发、桌面应用程序开发等领域。以下是Java学习笔记的摘要信息: 一、Java技术基础 * 1.1 编程语言:Java是一种面向对象的...
3. **数组与集合**:数组用于存储固定数量的同类型元素,而集合框架(如ArrayList、LinkedList、HashSet、HashMap等)则提供了动态存储和操作对象的能力。 4. **异常处理**:Java通过try-catch-finally结构进行异常...
这份笔记是作者在深入研究JAVA编程过程中积累的宝贵经验,旨在帮助读者系统性地掌握JAVA这门强大的编程语言。 首先,笔记可能涵盖了JAVA的基础知识,如数据类型、变量、运算符、流程控制(if-else、switch-case、...
Java集合框架是存储和操作数据的重要工具,笔记将详细阐述ArrayList、LinkedList、HashSet、HashMap等各种集合类的使用,以及泛型的概念和应用。读者将学会如何根据需求选择合适的集合类型,以及如何高效地操作集合...
### Java数据结构与算法学习笔记知识点总结 #### 一、数据结构概述 数据结构是对数据的一种组织形式,它决定了数据的存储方式以及处理数据的方法。常见的数据结构包括但不限于数组、链表、栈、队列、二叉树、图等...
Java是一种广泛使用的计算机编程语言,具有面向对象、平台无关、安全性高等特点。...教材中所涵盖的知识点广泛,每个章节都紧密结合了Java的实际应用,使得新手在学习过程中能够更好地理解和掌握Java编程。
此外,还讲解了对象序列化,这是将Java对象转换为字节流的过程,以便于数据传输和持久化存储。 多线程是Java编程中一个重要的高级特性,笔记中详细介绍了Thread线程类及多线程的使用,以及线程池的概念,这些都对于...
Java基础总结大全涵盖了Java编程语言的核心概念,从JVM、JRE和JDK的区别,到环境变量的设置,再到变量的定义和类型转换,深入浅出地讲解了Java的基础知识。 1. JVM、JRE和JDK: - JVM(Java Virtual Machine)是...
此外,`Notebook`类可能会使用数据结构,如数组、ArrayList或LinkedList来存储笔记。每种数据结构都有其优缺点,例如,数组适合已知大小的固定集合,ArrayList提供动态增长但有额外的内存开销,而LinkedList则方便...
Java初级程序员知识笔记 Java语言是当前最流行的编程语言之一,对于初级程序员来说,掌握Java基础知识是非常重要的。本笔记涵盖了Java基础知识的方方面面,包括Java基础知识、面试常考问题、项目开发初期常见的问题...