ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

java – 如何指定IN参数,作为TABLE类型的Oracle数据类型?

2019-06-30 06:00:59  阅读:356  来源: 互联网

标签:java oracle oracle10g


基于这个关于stackoverflow的上一个问题:

Fetch Oracle table type from stored procedure using JDBC

答案为我们提供了使用Oracle getArray和java.sql.Datum的OUT参数示例.但是,如果我想指定具有Oracle TABLE类型数据类型的IN参数呢?

CREATE OR REPLACE TYPE XXINV.XX_PROD_SRCH_RSLT_REC_TYPE IS OBJECT(

item_no                   VARCHAR2(30),  
inventory_item_id         NUMBER,  
organization_id           NUMBER,  
item_description          VARCHAR2(240),  
item_long_description     VARCHAR2(240), 
cat_description           VARCHAR2(240),  
category_set_name         VARCHAR2(240),  
nla_flag                  VARCHAR2(1),  
CONSTRUCTOR  FUNCTION XX_PROD_SRCH_RSLT_REC_TYPE RETURN SELF AS RESULT , 
MEMBER PROCEDURE log_prod_srch_rslt_rec_values (SELF  IN  XX_PROD_SRCH_RSLT_REC_TYPE) )

CREATE OR REPLACE TYPE xxinv.XX_PROD_SRCH_RSLT_TAB_TYPE AS TABLE OF XX_PROD_SRCH_RSLT_REC_TYPE;

我的SP是这样的:

XX_PART_RESEARCH_PKG .GET_PARTS
   (p_called_from          IN     VARCHAR2,
    p_item_id              IN     NUMBER,
    p_category_id          IN     NUMBER,
    p_mnfg_part_id         IN     NUMBER,
    p_item_desc            IN     VARCHAR2,
    p_include_NLA_items    IN     VARCHAR2,
    p_catl_group_id        IN     NUMBER,
    p_catl_attributes      IN     XX_PROD_ATTR_TAB_TYPE,
    x_srch_rslt            IN    XX_PROD_SRCH_RSLT_TAB_TYPE,
    x_return_status        OUT    VARCHAR2,
    x_returb_msg           OUT    VARCHAR2
   )

其中XX_PROD_ATTR_TAB_TYPE是一个表作为IN参数.

如何在Java中指定它?我正在使用Oracle 10g第2版.

解决方法:

由于您的类型已定义构造函数,我不确定这是否可以正常工作,但我已经在我的博客上发布了有关如何执行此操作的示例.首先,如何从Java将记录类型传递到Oracle:

http://betteratoracle.com/posts/31-passing-record-types-between-oracle-and-java

然后扩展它以从Java传递记录数组到Oracle:

http://betteratoracle.com/posts/32-passing-arrays-of-record-types-between-oracle-and-java

标签:java,oracle,oracle10g
来源: https://codeday.me/bug/20190630/1333812.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有