使用具有自定义对象的Oracle存储过程中的Spring jdbc返回List
我在Oracle中创建了一个自定义表,如下所示,我的存储过程在使用测试数据独立测试时返回列表。
create or replace TYPE NAMELIST AS TABLE OF VARCHAR2(20);
但是当我尝试使用Java spring调用此存储过程时,我无法返回List
。
declareParameter(new SqlOutParameter('l_out', OracleTypes.ARRAY, 'NAMELIST', new SqlReturnArray()));
我们如何在java中从Oracle返回自定义列表?
这是执行此操作的简单Java方法:
import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import oracle.jdbc.OracleCallableStatement; public class TestDatabaseArray { public static void main( final String[] args ) { try{ Class.forName( "oracle.jdbc.OracleDriver" ); Connection con = DriverManager.getConnection( "jdbc:oracle:thin:@localhost:1521:orcl", "username", "password" ); OracleCallableStatement st =(OracleCallableStatement) con.prepareCall("{ call get_names( :out_array ) }"); st.registerOutParameter( 1, java.sql.Types.ARRAY, "NAMELIST" ); st.execute(); String[] names = (String[]) st.getARRAY( 1 ).getArray(); for ( final String name : names ) System.out.println( name ); } catch ( ClassNotFoundException | SQLException ex ) { System.out.println( ex.getMessage() ); ex.printStackTrace(); } } }
- Maven术语 – 依赖和插件,存储库与pluginRepository
- 如何从RestTemplate调用URL中提取HTTP状态代码?
- JFreeChart:如何更改XYPlot前景色?
- 为什么我收到Maven错误:“无法确定资源X是否存在于http://maven.glassfish.org/content/groups/glassfish”?
- Spring Boot:在Quartz作业执行中使用@Service
- 在Netty客户端上发送多个异步请求
- Java:openGL:JOGL:当我调用display()方法时,幕后会发生什么?
- 从SimpleDateFormat更正我的日期输出
- 以编程方式覆盖log4j配置:FileAppender的文件位置