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 48
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 4458
3993 db에 저장되어 있는 CLOB 데이터의 위치가 어디로 저장되는지 확인하는 방법이 있을까요? 1 자바천재 2024.04.25 17
3992 큐브리드 서비스 시작이 안됩니다. 1 file 황남빵 2024.04.24 24
3991 큐브리드 JDBC 드라이버 XA문의 및 큐브리드 분산트랜잭션(XA) 지원 문의 1 몽키스패너 2024.04.24 23
3990 group_concat 변수 리턴 관련... 1 썬더기 2024.04.22 23
3989 기 DB에서 테이블 정보만 가져와서 다른 DB에 생성 1 바다소금 2024.04.22 18
3988 큐브리드 매니저 속도 문의 1 연동테스트용 2024.04.22 14
3987 cubrid count 속 2 kanin 2024.04.19 28
3986 cubrid 10.1 데이터 덮어쓰기 질문입니다. 4 ysk96 2024.04.18 53
3985 ACTION 명령어? 예약어? 1 투투투투기기 2024.04.17 20
3984 sql 구문 사용시 데이터 타입 decimal일 경우 1 투투투투기기 2024.04.11 30
3983 Regexp_count 4 SEO 2024.04.09 66
3982 큐브리드 메모리 오류 관련 질문 2 file 뚜벅뚜벅 2024.04.09 66
3981 큐브리드 실행이 안되는 이슈 1 file 최현욱 2024.04.09 41
3980 unloaddb & loaddb 관련 질문이 있습니다. 1 543534512 2024.04.06 46
3979 mac m1 다운로드 오류 1 file 혜주냉면 2024.04.05 42
3978 list 함수로 만든 sequence type을 varchar로 변환 문의 1 플레이어블 2024.04.04 36
3977 DECODE, CASE WHEN 사용법 문의 2 핑크팬더 2024.04.03 55
3976 schema 파일 loaddb - 스키마 정보 중복오류 문의 4 daay 2024.03.21 91
3975 object to string 4 네오랜덤 2024.03.20 69
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 200 Next
/ 200

Contact Cubrid

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