Background Image

FORUM

조회 수 12313 추천 수 0 댓글 2
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
 out 이 있는 프로시저를 작성중입니다.


아래는 생성문인데 맞는지 모르겠네요.

create procedure SP_DELETE_SECTION(v_section_seq numeric, v_message out varchar)
    as LANGUAGE java
    name 'SpDeleteSection.sp_delete_section(java.lang.Integer, java.lang.String) return java.lang.String'

이 문법이 맞는지요? 리턴이 있는게?

java는

public static String sp_delete_section(Integer v_section_seq, String v_message){
.
.
.
  return str;
}

이런식으로 해봤는데... 프로시져 내용은 실행은 되나.. 리턴되는 값이 null로만 나옵니다.
어떻하면 받을수가 있는지요?

메뉴얼을 검색해보니..아래와 같이 나와있는데요. 도무지 무슨말인지 모르겠습니다.

JAVA 저장 함수/프로시저의 인자를 OUT으로 설정한 경우 길이가 1인 1차원 배열로 전달된다. 그러므로 JAVA 메소드는 배열의 첫번째 공간에 전달할 값을 저장하여야 한다. <-- 배열을 리턴하라는 건가요?

답변부탁드려요...
  • ?
    웁쓰 2009.07.30 21:40 Files첨부 (3)

    안녕하세요. 배열을 리턴하는건 아니구요.
    자바메소드에서 String 형태로 넘기면 값을 바꿀수 없기때문에 String[] 형태로 out 변수를 선언하란 이야기 입니다.
    자세한 사항은 복잡하여 생략하겠습니다.

    바로 다음에 예제를

    create class phone(
            name varchar(20),
            phoneno varchar(20)
    );

    예제)
    public static void outSp(String name, String[] msg)
       throws Exception {
      Connection conn = null;
      ResultSet rs = null;
      PreparedStatement pstmt = null;
      String DB_URL = "jdbc:cubrid:localhost:33000:demodb:::";
      String DB_USER = "dba";
      String DB_PASSWORD = "";
      String sql=" INSERT INTO PHONE(NAME, PHONENO)" + " VALUES (?, ?)" ;
                try{
                        Class.forName("cubrid.jdbc.driver.CUBRIDDriver") ;
                        conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD);
                        pstmt = conn.prepareStatement(sql) ;
               
                        pstmt.setString(1, name);
                        pstmt.setString(2, "");
                        pstmt.executeUpdate() ;

                        pstmt.close() ;
                        conn.commit() ;
                        conn.close() ;
                        msg[0] = "success";
                } catch (SQLException e) {
                        System.err.println(e.getMessage());
                        msg[0] = "fail";
                }

     }


    create procedure outSp (name IN varchar, msg OUT varchar)
    as language java
    name 'MySP.outSp(java.lang.String, java.lang.String[])'
    ;

    실행 시키는 쪽
    Connection conn = DriverManager.getConnection(url, userid, password);
       CallableStatement ctmt;
       ctmt = conn.prepareCall(" call outSp(?, ?)" ) ;

                ctmt.setString(1, " Jane" ) ;
                ctmt.registerOutParameter(2, java.sql.Types.VARCHAR);
               
                ctmt.execute() ;
               
                String msg = ctmt.getString(2);
                System.out.println(msg);

  • ?
    제발좀 2009.07.31 02:44
    잘되네요. 많은 도움 되었습니다. 답변 감사합니다.

List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 CUBRID 사용자를 위한 DBeaver 도구 출시 안내 admin 2024.04.23 49
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 4458
734 Java VM library is not found 오류 발생 1 mon 2020.09.22 587
733 insert all 1 Babiyo 2020.09.22 234
732 큐브리드 매니저 테이블 정보 확인 안되는 문제 4 bchlim 2020.09.23 218
731 HA 구성시 갑자기 master - slave 가 전환됩니다. 1 nagh 2020.10.05 184
730 마이그레이션 시 성능 문의 file 모모 2020.10.06 81
729 큐브리드 매니져 erd 볼때 not null 값은 갚 못보나요? 1 덴드로비움 2020.10.06 400
728 쿼리 실행 속도 의문 1 하하 2020.10.06 492
727 마이그레이션중 to_date 문의 1 하하 2020.10.06 81
726 인덱스 scan 문의합니다 1 모모 2020.10.07 202
725 utf-8로 데이터베이스를 구성했는데 컬럼의 데이터값이 byte를 측정하려면 어떻하요? 1 덴드로비움 2020.10.07 230
724 서브쿼리의 max값 3 하하 2020.10.08 1200
723 설치 관련 문의 1 file 하바리 2020.10.12 76
722 cmt 실행 에러 진문 드려요 4 덴드로비움 2020.10.12 656
721 트리거에 여러개의 execute 문을 사용할 수 있는지요? 1 푸르른하늘 2020.10.13 363
720 큐브리드 메니저 접속시 오류(..최신 버전의 메니저 클라이언트를 이용해주세요) 1 file 푸르른하늘 2020.10.13 185
719 CUBRID_ADO_NET_4_5_10_2_latest.zip 를 적용하였을때 connection 오류 3 file 푸르른하늘 2020.10.13 206
718 보관로그(아카이브로그) 자동삭제 질문 드립니다 1 T군 2020.10.13 399
717 ORACLE_STYLE_EMPTY_STRING 설정 값에 의한 TRIM 처리에 대한 문의 1 zeroradish 2020.10.14 102
716 무슨 에러인지 문의 드립니다. 2 file Philip Park 2020.10.15 88
715 HA 실행시 발생하는 에러 1 file Philip Park 2020.10.15 128
Board Pagination Prev 1 ... 159 160 161 162 163 164 165 166 167 168 ... 200 Next
/ 200

Contact Cubrid

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