小编san*_*ndy的帖子

如何使用java读取从存储过程返回的类型的ARRAY?

这是在以下位置发布的问题的延续: 将Bean列表传递给oracle存储过程的Java程序 - 一次性传递整个列表而不是一个接一个地追加对象

我一直在尝试增强上面链接位置中提到的存储过程,并在实现中感到困惑.而不是VARCHAR2作为过程的输出,我现在想要返回NUM_ARRAY作为过程的输出.能帮我实现逻辑,在我的java代码中读取NUM_ARRAY.通常使用Map out = super.execute(inParams)返回输出; 我现在如何将NUM_ARRAY提取到我的bean?

The source code implementation is as follows.

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;

import javax.sql.DataSource;

import oracle.jdbc.OracleTypes;
import oracle.sql.ARRAY;
import oracle.sql.ArrayDescriptor;

import org.apache.log4j.Logger;
import org.springframework.jdbc.core.SqlOutParameter;
import org.springframework.jdbc.core.SqlParameter;
import org.springframework.jdbc.core.SqlTypeValue;
import org.springframework.jdbc.object.StoredProcedure;

public class RevPrdBrkDwnSP extends StoredProcedure{

    private final Logger log = Logger.getLogger(this.getClass().getName());

    public RevPrdBrkDwnSP(DataSource dataSource, String storeProcName) {

        // Run the Parent
        super(dataSource, storeProcName);

        // Declare the Parameter Details
        declareParameter(new SqlParameter("IN_ARRAY", OracleTypes.ARRAY, "****.PROD_PRCT_BRKDWN_TYPE_ARRAY"));
        declareParameter(new SqlOutParameter("OUT_ARRAY", OracleTypes.ARRAY, "****.PROD_PRCT_BRKDWN_TYPE_ARRAY")); …
Run Code Online (Sandbox Code Playgroud)

java oracle spring stored-procedures bulk-load

3
推荐指数
1
解决办法
2万
查看次数

抑制oracle数据未找到异常

我有一个独特的场景,我需要将多个列值放入多个变量中.我面临的问题是,虽然存在一个列值,但其他列不需要存在,因此我最终得到DATA NOT FOUND异常,而我想要抑制它并将空值放入剩余的变量中.

 select nvl(A,''), nvl(B,''), nvl(C,'') 
   into A1, B1, C1  
   from SAMPLE_TABLE 
  where name ='W6';
Run Code Online (Sandbox Code Playgroud)

表中的A值可以是"hello",B的值为null,表中的C值为null.
当语句在存储过程的主体内执行时,我不希望DATA NOT FOUND Exception,而是我希望A1的值为'hello',B1为'',C1为''.我将动态地运行它并且where条件不断变化,因此我也不想打开那些多个游标.任何人都可以让我知道我怎么能做到这一点?

oracle plsql stored-procedures

1
推荐指数
1
解决办法
3099
查看次数

标签 统计

oracle ×2

stored-procedures ×2

bulk-load ×1

java ×1

plsql ×1

spring ×1