Oracle中把Array类型作为参数传入存储过程并用Java对其进行调用的示例是本文我们主要要介绍的内容,接下来我们就开始介绍这一过程。
在宁化等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供做网站、网站设计 网站设计制作按需网站开发,公司网站建设,企业网站建设,成都品牌网站建设,营销型网站建设,成都外贸网站建设公司,宁化网站建设费用合理。
使用Oracle Database 11g Enterprise Edition Release 11.2.0.1.0. 步骤:
1. 创建自定义的类型。由于Oracle没有提供现成的array类型,这里用table类型来模拟。
CREATE OR REPLACE TYPE varchar_array is Table OF varchar2(128) 创建后,varchar_array是一个table,里面元素的类型为varchar2(128).
2. 创建一个存储过程test1. 这个过程接受一个上面创建的varchar_array类型作为输入参数. 在过程体中,通过一个循环遍历传入的array中的每一个元素, 插入到一个表tb中:
- create or replace procedure test1(arr in varchar_array) is
- begin
- FOR i IN arr.first .. arr.last LOOP
- insert into tb values(arr(i));
- END LOOP;
- end test1;
3. 数据库这边的基本上完事了。 Java程序如下, 基本上和普通程序差不多:
- String driver = "oracle.jdbc.driver.OracleDriver";
- String strUrl = "jdbc:oracle:thin:@192.168.1.199:1521:orcl";
- Statement stmt = null;
- ResultSet rs = null;
- Connection conn = null; try {
- Class.forName(driver);
- conn = DriverManager.getConnection(strUrl, "user", "pass");
- CallableStatement proc = null;
- proc = conn.prepareCall("{ call test1(?) }"); //调用存储过程test1
- //不一样的地方,获得上面创建的自定义的类型,注意大小写
- ArrayDescriptor descriptor = ArrayDescriptor.createDescriptor("VARCHAR_ARRAY",
- conn);
- List list = new ArrayList();
- list.add("a");
- list.add("b");
- //把list中的元素转换成自定义的类型
- ARRAY array = new ARRAY(descriptor, conn, list.toArray()); proc.setArray(1, array); proc.execute(); catch (Exception ex) {
- ex.printStackTrace();
- } finally {
- ..... 各种 close ......
- }
执行该Java程序,查询表tb,程序中的元素正常插入。
以上就是Oracle中把Array类型作为参数传入存储过程,并用Java对其进行调用的示例的全部,本文我们就介绍到这里了,希望本次的介绍能够对您有所收获!
【编辑推荐】
当前名称:Oracle中把Array类型作为参数传入存储过程的示例
链接分享:http://www.shufengxianlan.com/qtweb/news9/12409.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联