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 127
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 4476
3303 INSERT INTO 사용 시, 여러개의 VALUES 입력 오류 1 큐브리드봇 2021.10.30 838
3302 INSERT 문 VALUES 에 SELECT구문 문의 2 cubrid초보 2021.07.01 496
3301 INSERT 한글 깨짐 관련 질문 드립니다. 1 마이클 2020.04.16 1082
3300 INSTR 함수 사용시 값이 좀 다르게 나와서요 2 펌피 2017.08.31 415
3299 IP 정렬 질문 드립니다. 3 이석희 2009.05.23 13060
3298 IPv6 지원 여부 1 뿌까뿌니 2010.09.17 8951
3297 Image 데이터타입 사용방법 3 AD 2008.11.25 73851
3296 Insert 후 OID 가져오기... 2 봉봉나무 2010.12.09 9191
3295 Internal system failure 1 봉보로봉봉 2017.07.26 319
3294 Internal system failure 4 봉보로봉봉 2017.07.27 296
3293 Invalid buffer position 오류 문의 2 secret 김지은 2015.07.07 8
3292 Invalid buffer position 오류 발생 1 CUCUCUCU 2015.03.11 6692
3291 Invalid buffer position! 3 secret 카이로스 2015.04.15 13
3290 Invalid buffer position! 5 secret 물병 2017.06.30 26
3289 Invalid buffer position! insert시 발생하는데 왜 발생하나요? 5 바람바람 2013.01.18 7732
3288 Invalid buffer position! 오류 12 알칸펠 2013.12.20 12645
3287 Invalid call: it can not return ResultSet. 오류 분의 2 knight 2013.03.12 9848
3286 Invalid connection port! 1 secret 하세라 2016.08.19 5
3285 JAVA , JSP 용 예제 소스를 구할 수 있을까요? 1 나비다 2010.04.27 16071
3284 JAVA SP 에서 addBatch 오류 문의 1 방글이 2024.01.03 84
Board Pagination Prev 1 ... 31 32 33 34 35 36 37 38 39 40 ... 201 Next
/ 201

Contact Cubrid

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