안녕하세요... 항상 좋은 답변 감사드립니다.

 

오라클 관련 질문 올리는 곳이 없어 여기에 올립니다. 혹시 게시글이 이 게시판과

성격에 맞지 않다면 삭제하셔도 좋습니다.

 

오라클에서 아래와같이 자바함수를 하나 만들어서 사용하려고 합니다.
그런데 에러가 발생하여 난감합니다.
원래 자바함수는 보다 복잡한데 설명하기 쉽도록 간단하게 수정하였습니다.
아래내용을 간단히 설명하자면 주어진 하나의 값과 테이블의 f_size값을
을 더해서 40보다 작은 레코드만 선별해서 가져오려고 하는데 에러가 발생합니다.

 

select sumDouble('35.0', '20.0') from dual;
위와 같이 했을 경우는 정상적으로 값이 잘나옵니다.

 

select  * from productTable where  sumDouble( '35.0', f_size ) < 40;
위와 같이 했을 경우는 에러가 발생합니다.

 

자세한 사항은 아래를 참고해 주시면 감사하겠습니다.
그럼 좋은 답변 부탁드립니다.
--------------------------------------------------------------------------------------------

 

[Oracle 합계 자바클래스]
public class sumClass {

 public static double sumDouble(String first, String second)
 {
  double allSum = 0;
  
  allSum = Double.parseDouble(first) + Double.parseDouble(second);
    
  return Math.round(allSum);
 } 
}

 

[Oracle 합계 함수 만들기]
CREATE OR REPLACE FUNCTION  sumDouble(strFirst VARCHAR2, strSecond VARCHAR2) RETURN NUMBER
AS LANGUAGE JAVA
NAME 'sumClass.sumDouble(java.lang.String, java.lang.String) return java.lang.Double';

 

[Oracle 정상 테스트문]
select sumDouble('35.0', '20.0') from dual;
결과 : 50

 

[Oracle 에러 테스트문]
select  * from productTable where  sumDouble( '35.0', f_size ) < 40;
결과 : 에러
참고 : f_size는 productTable의  3~1000 까지 들어 있는 필드입니다.

 

[에러내용]
An error was encountered performing the requested operation:

ORA-29532: 자바 호출이 잡혀지지 않은 자바 예외로 인해 종료되었습니다.
java.lang.NullPointerException
29532.00000 - "Java call terminated by uncaught Java exception: %s"
*Cause : A Java exception or error was signaled and could not be resolved by the Java code.
*Action : Modify Java code, if this behavior is not intended.
Error at Line: --