Background Image

FORUM

조회 수 7177 추천 수 0 댓글 1
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.
OS
Linux 64x
CUBRID Ver.
CUBRID 9.3.6.0002
CUBRID TOOL Ver.
CUBRID Manager 9.3.6.007
응용 환경(API)
java, jdbc

* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.
에러 내용 및 재현 방법 재현 가능한 Source와 SQL
관련 테이블(인덱스, 키정보 포함) 정보 CUBRID 홈 디렉토리 아래 log 디렉토리 압축

-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------
Java 저장프로시저를 활용하여 CURSOR을 사용하려고 합니다.
Java에서 CURSOR을 호출 하였으나 NullPointerException 이 발생하여 문의드립니다.

public static ResultSet getPhone()
    {
        String qry = "SELECT * FROM PHONE";
        try
        {
            Connection conn = CubridConn.cubrid_conn();

            PreparedStatement stmt = conn.prepareStatement(qry, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
            ResultSet rs = stmt.executeQuery();
            ((CUBRIDResultSet)rs).setReturnable();
            rs.last();
            int cnt = rs.getRow();
            System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!RS CNT : " + cnt);

            return rs;
        }
        catch( Exception ex )
        {
            ex.printStackTrace();
        }
        return null;
    }

위 부분이 CURSOR의 JAVA부분입니다.

CREATE FUNCTION getPhone() RETURN CURSOR AS LANGUAGE JAVA
NAME 'PhoneNumber.getPhone() RETURN java.sql.ResultSet';

위 부분으로 Function(CURSOR) 생성 하였습니다.

public static void printPhone()
    {
        Connection conn = null;

        try
        {
            conn = CubridConn.cubrid_conn();
            CallableStatement stmt = conn.prepareCall("?=CALL getPhone()");
            stmt.registerOutParameter(1, Types.JAVA_OBJECT);
            stmt.execute();
            ResultSet rs = (ResultSet)stmt.getObject(1);

            if( rs == null )
            {
                System.out.println("!!!!!!!!!!!!RS IS NULL");
                rs.close();
                return;
            }
            rs.close();
        }
        catch( Exception ex )
        {
            ex.printStackTrace();
        }
    }

위 부분이 CURSOR을 호출 하는 부분이고

CREATE PROCEDURE printPhone() AS LANGUAGE JAVA
NAME 'PhoneNumber.printPhone()';

위 부분으로 프로시저를 작성하여 CUBRID Manager를 통해 프로시저를 호출하였습니다.

CURSOR 부분에 불러온 갯수를 찍도록 표시하였고 결과가 정상적으로 출력이 되었지만

printPhone에서는 계속 null 이라고 나오는데 확인 부탁드립니다.
  • ?
    이상신 2017.03.22 21:38

    안녕하세요 ~


     우선 getPhone() 

     ((CUBRIDResultSet)rs).setReturnable(); --> Error Multiple markers at this line - CUBRIDResultSet cannot be resolved to a type

    발생하여 주석 처리 후 TEST 진행 하였으며 결과 RS CNT 찍는것 까지 확인 하였습니다.


    null 발생원인은 SP 호출시 호출한 쿼리의 Connection을 계속 같이 사용하기에 

    아래 소스와 같이 기존 커넥션 null 처리 함으로서 발생한다 판단됩니다.

    public static void printPhone()
        {
            Connection conn = null;

    더 궁금한점이 있는 경우 해당 소스 전체을 보내 주십시오

    감사합니다.

List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 CUBRID 사용자를 위한 DBeaver 도구 출시 안내 admin 2024.04.23 53
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 4459
1215 숫자 컬럼 검색 문의드립니다. 5 starworld 2018.03.06 718
1214 SELECT FETCH 문제 3 초보123 2018.03.07 550
1213 큐브리드 에러 해결방법 문의드립니다 3 file 오명일 2018.03.08 2003
1212 큐브리드관련 질문드립니다. 1 CJH3320 2018.03.12 233
1211 DELETE 구문시 에러 1 jiman9944 2018.03.12 1060
1210 MERGE INTO문 관련. 3 고늬 2018.03.13 1112
1209 2783 게시글 이어서 질문입니다. 1 초보123 2018.03.15 273
1208 안녕하세요 CentOS repository cubrid에러 질문입니다. 1 yennikim 2018.03.16 412
1207 cubrid 백업 및 복원관련 1 코드보이 2018.03.19 963
1206 큐브리드 매니저 osx 문의 2 콤트 2018.03.21 599
1205 CUBRID 옵티마이저는 Index Condition Pushdown = ICP 기능을 제공하나요?? 1 OPQR 2018.03.22 208
1204 cubrid 설치 쉘스크립트 실행 시 오류 1 asdf5062 2018.03.23 440
1203 큐브리드 10점대로 구축된 사이트가 있나요? 2 잉여개발자 2018.03.26 258
1202 cubrid 매니저에서 엑셀로 내보내기 했을때 문제 문의 1 chrisan 2018.03.27 556
1201 브로커기능이 궁금합니다.? 1 coolkkm 2018.03.27 229
1200 컬럼 COMMENT 추가할 수 있는 방법이 있을까요 7 잉여개발자 2018.04.03 2616
1199 Cannot coerce value of domain character to domain " 에러 관련 문의 4 잉여개발자 2018.04.05 2702
1198 안녕하세요. 레코드 접근시 accessor is invalid 라는 에러가 뜹니다. 도와주세요ㅠ 1 file TopCoder 2018.04.09 217
1197 Linux에 설치된 Cubrid 매니저 접속 속도 문제 3 mcwony 2018.04.10 472
1196 서버 조회 문제 (쿼리 rock) 2 file a4033 2018.04.10 658
Board Pagination Prev 1 ... 135 136 137 138 139 140 141 142 143 144 ... 200 Next
/ 200

Contact Cubrid

대표전화 070-4077-2110 / 기술문의 070-4077-2113 / 영업문의 070-4077-2112 / Email. contact_at_cubrid.com
Contact Sales