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 51
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 4458
1054 기존 이중화에서 단일 서버로 바꾸는 경우 주의할사항이 있나요? 1 coolkkm 2017.10.31 294
1053 테이블스페이스 1 ozro 2022.06.22 294
1052 Cubrid HA 오류 로그 문의드립니다. 1 큐브짱 2022.03.28 294
1051 지원하는 INDEX 종류를 알고 싶습니다. 1 장두 2017.07.19 293
1050 맥 카타리나에서 큐브리드 매니저 실행 안 됨. 3 김간디 2020.10.27 293
1049 큐브리드 DB 연계관련 오류 코드 문의 드립니다. 2 file kik 2018.01.24 293
1048 Unable to register the CUBRID Service Tray. Retry? 메시지 팝업문제 민수킴 2019.09.02 293
1047 DB접속 -677 오류 1 file gu04 2021.12.28 291
1046 큐브리드 9.3 버전 Result Set Caching 설정 관련 질문 4 imwondol 2021.04.12 290
1045 varchar의 글자수 제한 스펙 문의 1 kirito 2019.08.22 290
1044 loadb 인덱스 처리 옵션 문의 입니다. 1 coolkkm 2017.12.04 290
1043 큐브리드 order by 힌트가 있을까요? 1 겸둥이k 2021.09.23 290
1042 큐브리드 매니저 저장 프로시저 1 sjsj 2022.06.05 290
1041 Cubrid sga, pga 메모리 사이즈 확인 방법 문의 드립니다. 1 Philip Park 2020.03.25 290
1040 CUBRID 매니저에서 뷰 편집 -> SQL문 보기시 SQL이 너무 길어 짤리는 현상 4 테크 2021.05.24 290
1039 큐브리드 버전 문의입니다. 1 행복한이니 2020.01.07 289
1038 JAVA VM 라이브러리 오류 1 용군 2017.12.19 289
1037 CMT를 통한 Oracle 마이그레이션 중 발생한 오류 문의 1 박종원 2019.04.15 289
1036 [설치오류] cubrid-python-10.2-latest 설치 시 "libregex38a/regex38a.h: 그런 파일이나 디렉터리가 없습니다" 오류 발생 6 호빗손 2020.06.16 289
1035 CONNECT BY 특정 root 레코드 제외 관련 문의 4 file 종이 2021.02.16 289
Board Pagination Prev 1 ... 143 144 145 146 147 148 149 150 151 152 ... 200 Next
/ 200

Contact Cubrid

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