JAVA에서 ORACLE로 배열넘기기
오라클과 프로그램간에 배열을 어떻게 주고 받을 것이지
고민해 보신 분들이 계실 줄 압니다.
며칠간 시간이 나서 이리저리 찾아보니까..다음처럼 결과물이 나왔네요...
사실 몇 달 전부터 한 번 봐야 쓰겄다 했는데...이제사 조금 감을 잡았습니다.
실제적으로 프로젝트에 적용해본 적은 없고..테스트로 해 본 내용입니다.
필요한 상황에 맞게 응용을 해보시면 될 성 싶습니다.
제가 능력많아..떡하니 이렇게 작품을 내놓으면 좋겠지만......
애석하게도.. http://asktom.oracle.com/pls/ask/f?p=4950:1: 에서 자료참조를 했습니다.
1. Java Stored Procedure "ArrayDemo" 생성
create or replace
and compile java source named "ArrayDemo"
as
import java.io.*;
import java.sql.*;
import oracle.sql.*;
import oracle.jdbc.driver.*;
public class ArrayDemo
{
public static void passArray() throws SQLException
{
Connection conn = new OracleDriver().defaultConnection();
int intArray[] = { 1,2,3,4,5,6 };
ArrayDescriptor descriptor = ArrayDescriptor.createDescriptor( "NUM_ARRAY",
conn);
ARRAY array_to_pass = new ARRAY( descriptor, conn, intArray );
OraclePreparedStatement ps =
(OraclePreparedStatement)conn.prepareStatement( "begin give_me_an_array
(:x); end;" );
ps.setARRAY( 1, array_to_pass );
ps.execute();
}
}
/
Java created.
2. 사용할 Array(or TYPE) 생성
create or replace type NUM_ARRAY as table of number;
/
Type created.
3. Array 출력시키는 Procedure 생성
create or replace procedure give_me_an_array( p_array in num_array )
as
begin
for i in 1 .. p_array.count
loop
dbms_output.put_line( p_array(i) );
end loop;
end;
/
Procedure created.
4. java source를 호출하는 Procedure 생성
create or replace procedure show_java_calling_plsql
as language java
name 'ArrayDemo.passArray()';
/
Procedure created.
5. Procedure "give_me_an_array"에서 출력하는 내용을 보기 위한 명령어
set serveroutput on
6. show_java_calling_plsql 실행
exec show_java_calling_plsql
결과>
1
2
3
4
5
6
고민해 보신 분들이 계실 줄 압니다.
며칠간 시간이 나서 이리저리 찾아보니까..다음처럼 결과물이 나왔네요...
사실 몇 달 전부터 한 번 봐야 쓰겄다 했는데...이제사 조금 감을 잡았습니다.
실제적으로 프로젝트에 적용해본 적은 없고..테스트로 해 본 내용입니다.
필요한 상황에 맞게 응용을 해보시면 될 성 싶습니다.
제가 능력많아..떡하니 이렇게 작품을 내놓으면 좋겠지만......
애석하게도.. http://asktom.oracle.com/pls/ask/f?p=4950:1: 에서 자료참조를 했습니다.
1. Java Stored Procedure "ArrayDemo" 생성
create or replace
and compile java source named "ArrayDemo"
as
import java.io.*;
import java.sql.*;
import oracle.sql.*;
import oracle.jdbc.driver.*;
public class ArrayDemo
{
public static void passArray() throws SQLException
{
Connection conn = new OracleDriver().defaultConnection();
int intArray[] = { 1,2,3,4,5,6 };
ArrayDescriptor descriptor = ArrayDescriptor.createDescriptor( "NUM_ARRAY",
conn);
ARRAY array_to_pass = new ARRAY( descriptor, conn, intArray );
OraclePreparedStatement ps =
(OraclePreparedStatement)conn.prepareStatement( "begin give_me_an_array
(:x); end;" );
ps.setARRAY( 1, array_to_pass );
ps.execute();
}
}
/
Java created.
2. 사용할 Array(or TYPE) 생성
create or replace type NUM_ARRAY as table of number;
/
Type created.
3. Array 출력시키는 Procedure 생성
create or replace procedure give_me_an_array( p_array in num_array )
as
begin
for i in 1 .. p_array.count
loop
dbms_output.put_line( p_array(i) );
end loop;
end;
/
Procedure created.
4. java source를 호출하는 Procedure 생성
create or replace procedure show_java_calling_plsql
as language java
name 'ArrayDemo.passArray()';
/
Procedure created.
5. Procedure "give_me_an_array"에서 출력하는 내용을 보기 위한 명령어
set serveroutput on
6. show_java_calling_plsql 실행
exec show_java_calling_plsql
결과>
1
2
3
4
5
6
[이 게시물은 관리자님에 의해 2011-10-31 16:47:36 Oracle에서 이동 됨]
게시글 목록
| 번호 | 제목 |
|---|---|
| 12995 | |
| 12994 | |
| 12993 |
JavaScript
[SQL]Delete문
|
| 29390 |
HTML
[SQL]Update문
1
|
| 29389 |
HTML
[SQL]Insert 문
|
| 12992 |
JavaScript
[SQL]등록/수정/삭제 전에 알아둘 사항
|
| 12991 | |
| 29388 |
HTML
[SQL]Table 만들기
|
| 29387 |
HTML
[SQL]SQL의 기초 (3)
|
| 29386 |
HTML
[SQL]SQL의 기초 (2)
|
| 29384 |
HTML
[SQL]SQL의 기초 (I)
1
|
| 29383 |
HTML
[SQL]DATABASE의 구조
|
| 29382 | |
| 25079 |
마케팅
마케팅 전략 ppt자료
3
|
| 12989 |
MySQL
php 에서 자바스크립트로 배열 보내기
1
|
| 12988 |
기타
이벤트 객체
|
| 25070 | |
| 12987 | |
| 29381 | |
| 12986 |
JavaScript
에디터로 작성한 게시물에서 특정태그없애기
|
| 12985 |
PHP
롤링배너객체 Rolling
|
| 12984 |
JavaScript
간단하게 만들어본 메일전송 클래스
|
| 12979 |
JavaScript
24시간 이내에 수정된 php 파일만 찾기
4
|
| 12978 |
Flash
무툴즈를 이용한 플래시 비슷한 탑메뉴~~~
|
| 12977 | |
| 12973 | |
| 12972 | |
| 12971 | |
| 29380 |
HTML
클릭해서 이미지 팝업 뛰우기.
|
| 12969 | |
| 12968 |
Flash
플래시에 가려진 레이어 올려봅시다.
|
| 12967 | |
| 29379 |
HTML
부끄럽네요. 로그인아웃 표시
|
| 12965 |
기타
PHP 전역변수
1
|
| 12963 |
기타
PHP 배열변수
1
|
| 29378 |
HTML
PHP 변수사용법
|
| 12962 |
기타
PHP 기본구조
|
| 12960 |
Linux
리눅스 자바설치
1
|
| 29377 |
HTML
TAR명령. TAR압축묶기 압축풀기
|
| 12958 | |
| 12955 |
MySQL
ncftp 를 이용한 백업 스크립트
2
|
| 12954 |
기타
ftp 업로드 자동
|
| 12951 |
JavaScript
리눅스 시스템 시간 확인 및 시간 맞추기
2
|
| 12950 |
Linux
리눅스 한글 설정
|
| 12949 |
MySQL
리눅스 한글설정관련_locale
|
| 12946 |
MySQL
웹호스팅 사용자를 위한 계정관리 스크립트
2
|
| 12945 | |
| 12941 | |
| 12939 |
기타
리눅스 시간맞추기
1
|
| 12938 |
기타
리눅스 기본명령어들
|
| 12936 | |
| 12931 | |
| 29376 |
HTML
윈도우2003서버 관리
|
| 12928 | |
| 29375 | |
| 12927 |
JavaScript
간단한 텍스트 스크롤
|
| 12926 | |
| 12923 |
MySQL
mysql 5.0.x 공백문자인식
2
|
| 12921 | |
| 12918 | |
| 12917 | |
| 12914 | |
| 12909 |
정규표현식
정규표현식 튜토리얼
4
|
| 12906 | |
| 12903 | |
| 12902 |
JavaScript
확장자 bak 파일 지우기
|
| 298 | |
| 12901 |
JavaScript
프로젝트의 구축 방법에 관한 내용입니다.
|
| 12891 | |
| 12888 |
Flash
[질문] 플래시 메뉴를 통한 링크...
2
|
| 12886 | |
| 295 | |
| 12885 |
Flash
flv 플레이어 자막연동 보드 완성 하였음
|
| 12883 |
JavaScript
flv 동영상 자막 싱크만드는 중입니다. txt 연동
1
|
| 12881 |
Flash
풀 플래시 소스
1
|
| 292 | |
| 12880 | |
| 290 | |
| 287 | |
| 12879 | |
| 285 | |
| 12875 | |
| 12872 | |
| 280 | |
| 12857 | |
| 276 | |
| 275 | |
| 25063 |
계약서
홈페이지 관리계약서
6
|
| 271 | |
| 29369 |
HTML
제가 그린 일러스트입니다.
5
|
| 268 | |
| 267 | |
| 12852 |
JavaScript
원격이미지 조건에 따른 썸네일 생성
4
|
| 12851 |
JavaScript
윈도우 APM 에서 리눅스의 심볼릭 링크 사용하기
|
| 265 | |
| 263 | |
| 12844 |
Flash
도와주세요~
6
|
| 260 | |
| 12841 |
JavaScript
사진 뽀샤시 ~~
2
|
| 12834 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기