Discussions
Categories
- 385.5K All Categories
- 5.1K Data
- 2.5K Big Data Appliance
- 2.5K Data Science
- 453.4K Databases
- 223.2K General Database Discussions
- 3.8K Java and JavaScript in the Database
- 47 Multilingual Engine
- 606 MySQL Community Space
- 486 NoSQL Database
- 7.9K Oracle Database Express Edition (XE)
- 3.2K ORDS, SODA & JSON in the Database
- 585 SQLcl
- 4K SQL Developer Data Modeler
- 188K SQL & PL/SQL
- 21.5K SQL Developer
- 46 Data Integration
- 46 GoldenGate
- 298.4K Development
- 4 Application Development
- 20 Developer Projects
- 166 Programming Languages
- 295K Development Tools
- 150 DevOps
- 3.1K QA/Testing
- 646.7K Java
- 37 Java Learning Subscription
- 37.1K Database Connectivity
- 201 Java Community Process
- 108 Java 25
- 22.2K Java APIs
- 138.3K Java Development Tools
- 165.4K Java EE (Java Enterprise Edition)
- 22 Java Essentials
- 176 Java 8 Questions
- 86K Java Programming
- 82 Java Puzzle Ball
- 65.1K New To Java
- 1.7K Training / Learning / Certification
- 13.8K Java HotSpot Virtual Machine
- 94.3K Java SE
- 13.8K Java Security
- 208 Java User Groups
- 25 JavaScript - Nashorn
- Programs
- 667 LiveLabs
- 41 Workshops
- 10.3K Software
- 6.7K Berkeley DB Family
- 3.6K JHeadstart
- 6K Other Languages
- 2.3K Chinese
- 207 Deutsche Oracle Community
- 1.1K Español
- 1.9K Japanese
- 474 Portuguese
Passing array of arrays as a parameter to Oracle
Hi All.
I don't know Java language and I'm not sure if I am writing in the correct subforum.
We have a function that needs an array of arrays as an input parameter. The type of this parameter is t_a_varchar2s defined as:
create or replace type t_varchar2s is table of varchar2(255); / create or replace type t_a_varchar2s is table of t_varchar2s; /
We have a problem with defining an array in Java that can be passed to Oracle into a parameter of this t_a_varchar2s type.
May you help us, please?
Best regards,
Jacek
Answers
-
ChatGPT's answer - how accurate it is I don't know as I stay away from my least favourite language Java. Either way it should give you some ideas as to how to resolve your problem.
AI:
In Java, you can use the ArrayDescriptor class from the oracle.sql package to create an array that can be passed as a parameter to an Oracle stored procedure.
Here is an example of how you can create an Array object of type t_a_varchar2s to pass as a parameter to an Oracle stored procedure:
import java.sql.Array; import java.sql.Connection; import java.sql.SQLException; import oracle.sql.ArrayDescriptor; // ... ArrayDescriptor descriptor = ArrayDescriptor.createDescriptor("T_A_VARCHAR2S", connection); String[][] data = { {"value1", "value2", "value3"}, {"value4", "value5", "value6"} }; Array array = new ARRAY(descriptor, connection, data); // pass the array as a parameter to the stored procedure callableStatement.setArray(1, array);
In this example, connection is an open java.sql.Connection object to the Oracle database, and callableStatement is a java.sql.CallableStatement object representing the stored procedure that you are calling. Note that you need to have ojdbc.jar added to your classpath.