JavaからINパラメータが "Type"であるストアドプロシージャを呼び出す必要があります。下記を参照してください。 "CusInfoList IN CUSTOMER_INFO_LIST - TYPE"をJavaを使用して設定するには?次のようにJavaでユーザ定義のSQL型を設定する
SQL> create or replace procedure insert_XXXX
2 (
3 L_TXN_ID VARCHAR2
4 ,L_RESOLUTION_ID NUMBER
5 ,L_COMPENSATION_TYPE VARCHAR2
6 ,L_COMPENSATION_VALUE NUMBER
7 ,L_CLAIM_TYPE VARCHAR2
8 ,L_CLAIM_DETAIL VARCHAR2
9 ,L_VOUCHER_TYPE_CODE VARCHAR2
10 ,L_REMARKS VARCHAR2
11 ,L_OTH_REMARKS VARCHAR2
12 ,L_STATUS VARCHAR2
13 ,L_OVERRIDE_FLAG CHAR
14 ,L_EMP_NUMBER VARCHAR2
15 ,L_AGENT_LOCATION VARCHAR2
16 ,L_LST_UPDATED_TIMESTAMP TIMESTAMP
17 ,L_CREATED_TIMESTAMP TIMESTAMP DEFAULT SYSDATE
18 ,L_CODE VARCHAR2
19 ,L_FL_NO NUMBER
20 ,L_FL_DATE DATE
21 ,L_FL_STA VARCHAR2
22 ,L_FL_A_STA VARCHAR2
23 ,L_RECORD_LOCATOR VARCHAR2
24 ,L_RECORD_CREATE_DATE DATE
25 **,CusInfoList IN CUSTOMER_INFO_LIST -- TYPE**
26 )
27 IS
28 begin
29 SAVEPOINT ins_sp;
タイプCUSTOMER_INFO_LIST
が宣言されている:あなたがする必要があるいくつかのものがあります
CREATE OR REPLACE TYPE CUSTOMER_INFO_TYPE AS OBJECT (
LAST_NAME VARCHAR2(20 CHAR),
FIRST_NAME VARCHAR2(20 CHAR),
CUST_NUMBER NUMBER,
LOY_NUMBER VARCHAR2(10 CHAR),
HEL_SCORE NUMBER,
TIER_STATUS VARCHAR2(25 CHAR),
EMAIL_ADDRESS VARCHAR2(50 CHAR),
PHONE_NUMBER VARCHAR2(20 CHAR),
MAILING_ADDRESS VARCHAR2(100 CHAR),
CASE_NUMBER VARCHAR2(50 CHAR),
CASE_STATUS VARCHAR2(20 CHAR)
);
CREATE OR REPLACE TYPE isolve.CUSTOMER_INFO_LIST AS VARRAY(25) OF ISOLVE.CUSTOMER_INFO_TYPE;
こんにちはルーク、ありがとうございます。私はあなたから与えられたステップに従った。しかし、一点で立ち往生した。 「java.sql.SQLException:記述子を構築できません:無効な引数」というエラーが表示される – SJM
以下のコードをご覧ください。このエラーは、 "ARRAY array = new ARRAY(arrayDesc、databaseConnection、customerInfos);"を設定しているステートメントで発生しています。私はojdbc14.jarを使用していることに注意してください。 – SJM
List custinfoArray = new ArrayList (); int i = 2; java.util.Map map = databaseConnection.getTypeMap(); map.put( "CUSTOMER_INFO_TYPE"、Class.forName( "CustomerInfo")); databaseConnection.setTypeMap(map);for(int j = 0; j
SJM