import java.io.*;
import java.sql.*;
import oracle.sql.*;
import oracle.jdbc.driver.*;
public class ArrayDemo
{
public static void main(String[] args) throws SQLException {
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
Connection conn =
DriverManager.getConnection("jdbc:oracle:thin:@210.102.97.18:1521:v880","ihjdbmgr", "ihjdbmgr01");
// Object objArray1[][] = {{"Ha"},{"Kweon"},{"Park"}};
Object objArray1[] = {"Ha1","12345678901231"};
Object objArray2[] = {"Ha2","12345678901232"};
Object objArray3[] = {"Ha3","12345678901233"};
Object objArray[] = new Object[3];
StructDescriptor desc1 = StructDescriptor.createDescriptor("STUD_BUFFER",conn);
ArrayDescriptor desc2 = ArrayDescriptor.createDescriptor( "STUD_ARRAY", conn);
STRUCT pstruct = null;
pstruct = new STRUCT(desc1, conn, objArray1);
objArray[0] = pstruct;
pstruct = new STRUCT(desc1, conn, objArray2);
objArray[1] = pstruct;
pstruct = new STRUCT(desc1, conn, objArray3);
objArray[2] = pstruct;
ARRAY array_to_pass = new ARRAY( desc2, conn, objArray );
/*
int i = 0;
for (i=0;i < 3 ;i++ )
{
System.out.println(i+" : "+array_to_pass[i].toString());
}
*/
System.out.println(array_to_pass.getOracleArray());
OraclePreparedStatement ps =
(OraclePreparedStatement)conn.prepareStatement
( "begin batchUpdate(:x,:x2,:x3); end;" );
ps.setARRAY( 1, array_to_pass ); // 처리될 배열
ps.setInt( 2, 3); // 처리될 개수
ps.setString( 3, "2003"); // 학년도
ps.execute();
}
}
/*
drop type STUD_BUFFER;
drop type STUD_ARRAY
-- update용 type선언
create or replace type STUD_BUFFER as object(sorted_rank varchar2(30), gupsu_no varchar2(10));
-- 실행
create or replace type STUD_ARRAY as table of STUD_BUFFER;
procedure give_me_an_array( p_array in num_array, p_count in number )
as
begin
for i in 1 .. p_count
loop
dbms_output.put_line(p_array(i).name);
insert into emp2(name) values (p_array(i).name);
commit;
end loop;
end;
*/
import java.sql.*;
import oracle.sql.*;
import oracle.jdbc.driver.*;
public class ArrayDemo
{
public static void main(String[] args) throws SQLException {
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
Connection conn =
DriverManager.getConnection("jdbc:oracle:thin:@210.102.97.18:1521:v880","ihjdbmgr", "ihjdbmgr01");
// Object objArray1[][] = {{"Ha"},{"Kweon"},{"Park"}};
Object objArray1[] = {"Ha1","12345678901231"};
Object objArray2[] = {"Ha2","12345678901232"};
Object objArray3[] = {"Ha3","12345678901233"};
Object objArray[] = new Object[3];
StructDescriptor desc1 = StructDescriptor.createDescriptor("STUD_BUFFER",conn);
ArrayDescriptor desc2 = ArrayDescriptor.createDescriptor( "STUD_ARRAY", conn);
STRUCT pstruct = null;
pstruct = new STRUCT(desc1, conn, objArray1);
objArray[0] = pstruct;
pstruct = new STRUCT(desc1, conn, objArray2);
objArray[1] = pstruct;
pstruct = new STRUCT(desc1, conn, objArray3);
objArray[2] = pstruct;
ARRAY array_to_pass = new ARRAY( desc2, conn, objArray );
/*
int i = 0;
for (i=0;i < 3 ;i++ )
{
System.out.println(i+" : "+array_to_pass[i].toString());
}
*/
System.out.println(array_to_pass.getOracleArray());
OraclePreparedStatement ps =
(OraclePreparedStatement)conn.prepareStatement
( "begin batchUpdate(:x,:x2,:x3); end;" );
ps.setARRAY( 1, array_to_pass ); // 처리될 배열
ps.setInt( 2, 3); // 처리될 개수
ps.setString( 3, "2003"); // 학년도
ps.execute();
}
}
/*
drop type STUD_BUFFER;
drop type STUD_ARRAY
-- update용 type선언
create or replace type STUD_BUFFER as object(sorted_rank varchar2(30), gupsu_no varchar2(10));
-- 실행
create or replace type STUD_ARRAY as table of STUD_BUFFER;
procedure give_me_an_array( p_array in num_array, p_count in number )
as
begin
for i in 1 .. p_count
loop
dbms_output.put_line(p_array(i).name);
insert into emp2(name) values (p_array(i).name);
commit;
end loop;
end;
*/
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
126 | 부등호 조인 | 운영자 | 2002.09.18 | 56559 |
125 | REPORT 양식 맞추기 | 운영자 | 2002.09.18 | 31280 |
124 | PARAMETER값에 따라 변경이 일어나는 문장 | 운영자 | 2002.09.17 | 15661 |
123 | oracle proc 에서 stdarg.h파일사용하기위한 환경설정 | 원우석 | 2004.12.06 | 12508 |
122 | 테이블 열항목을 행항목으로 변경하는 팁 | 구퍼 | 2011.01.11 | 8675 |
121 | NESTED TABLE과 VARRAY사용법과 다른점 | 박상현 | 2005.11.03 | 8642 |
120 | 바로이전 ROW의 값을 참조하고자 할때 | 운영자 | 2002.09.18 | 8493 |
119 | oracle의 procedure에서의 여러 리턴값의 활용 예 | 운영자 | 2002.10.18 | 8151 |
118 | 오라클 DB 링크 만들기 | 구퍼 | 2011.01.06 | 6510 |
117 | toad에서 사용가능한 explan_table생성 script | 박상현 | 2004.05.08 | 6386 |
116 | mssql update예제(select ~ update) | 구퍼 | 2008.10.31 | 6118 |
» | java에서 array처리 방법 | 운영자 | 2003.01.27 | 6033 |
114 | Instant Client 사용법 | 구퍼 | 2009.12.30 | 5894 |
113 | COLUMN을 ROW로 | 운영자 | 2002.09.18 | 5858 |
112 | select -> update 구문 샘플 | 구퍼 | 2010.01.21 | 5696 |
111 | 그룹 단위별 일련번호 붙이기 | 운영자 | 2002.09.18 | 5668 |
110 | 데이타에 한글로 공백이 있는 경우 값을 가져오지 못하고 오류가 발생하는 경우 처리 | 구퍼 | 2009.03.23 | 5584 |
109 | 현재의 년월일시분초 구하기 | 구퍼 | 2008.09.10 | 5549 |
108 | Conditions | 구퍼 | 2008.09.17 | 5544 |
107 | 순환구조에서 임시테이블에 하위 조직을 엮어서 넣는 프로시져 | 하늘과컴 | 2007.10.01 | 5204 |