Background Image

FORUM

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

단축키

Prev이전 문서

Next다음 문서

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

* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.
OS
Window7 32bit, Linux 64bit 등
CUBRID Ver.
[cubrid_rel] 수행 결과
CUBRID TOOL Ver.
[도움말]-[버전정보] 확인
응용 환경(API)
java, php, odbc 등 입력

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


-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------

안녕하세요..


큐브리드 function 을 만들려고하는데요.


http://www.cubrid.org/manual/91/ko/sql/jsp.html


여기나와있는데 예제는 일단 완료했습니다.


그런데 실제 소스를 반영할라다 보니... 잘 모르겠네요..


예제랑은 아예 틀린 문제인거 같아서.. 모르겠네요.... 



-----------------------------------------------------------

CREATE FUNCTION 'aaaa`() RETURNS INTEGER(11)

    READS SQL DATA

BEGIN


내용 어쩌구


END

-------------------------------------------------------------------



이것을 만들라는데요..


이걸 클래스로 어찌 만드는지....


예시좀 하나 부탁드리겠습니다..  저위에 내용으로 예시좀 부탁드릴게요...


듬성듬성 말고.. 자세히좀 부탁드립니다...





1번째 질의 실행이 실패하였습니다.

--------------------------------------------------

CREATE FUNCTION `aaaaa`() RETURNS INTEGER(11)

    READS SQL DATA

BEGIN

        DECLARE _id INTEGER;



실행 오류 : -493

Syntax: invalid create function

  CREATE FUNCTION identifier '(' {sp_param_list} ')' RETURN {data_type|CURSOR} {IS|AS} LANGUAGE JAVA NAME 'STRING' [CAS INFO-localhost:30000,1,3020],[SESSION-18],[URL-jdbc:cubrid:localhost:30000:cms:dba:********:].

  • ?
    주영진 2016.09.08 05:21
    CUBRID Store Function으로 만드시려는 Java 클래스 파일은 작성하셨다는 전제로 설명드리겠습니다.

    빨간색은 사용자가 환경에 따라 변경되는 값입니다.



    1. Java 클래스 파일을 CUBRID 데이터베이스에 Load 하셔야 합니다.

         $ loadjava demodb HelloWorld.class



    2. 데이터베이스에 CUBRID Store Function을 생성해주셔야 합니다.

         단, Java 클래스 Function은 꼭 static이어야 합니다.

         2-1. 파라미터 값이 없고, 리턴 값만 있는 경우

    csql> CREATE FUNCTION Hello() RETURN VARCHAR
             AS LANGUAGE JAVA
             NAME 'SpCubrid.HelloCubrid() return java.lang.String';

    - Hello()
         CUBRID 데이터베이스에서 사용할 Function 이름입니다.
                   Java 클래스 파일에 작성된 Function 이름과 관계없이 임의로 지정해주시면 됩니다.

              - VARCHAR
                   Java 클래스 파일에 작성된 Function의 리턴 값 타입에 대응하는 CUBRID 데이터베이스 데이터 타입입니다.
                   CUBRID 데이터 타입은 http://www.cubrid.org/manual/ko/9.3.0/sql/jsp.html 에서 '데이터 타입 매핑' 부분에 잘 나와 있습니다.
                   Function의 리턴 값이 가지는 범위에 따라 적절하게 지정해주시면 됩니다.

              - SpCubrid.HelloCubrid() return java.lang.String
                   Java 클래스 파일에 대한 정보를 적어주는 부분입니다.
                   해석하자면 SpCubrid라는 Java 클래스에서 HelloCubrid()라는 메소드를 사용하고, 리턴 값의 타입은 java.lang.String이라는 뜻입니다.
                   작성하신 Java 클래스 파일에 맞게 적어주시면 되고 ' (single quotation)으로 감싸주시면 됩니다.

              ※ CREATE FUNCTION은 CUBRID csql 접속 또는 Manager 접속을 통해서 해주셔야 합니다.

         2-2. 파라미터 값이 있고, 리턴 값도 있는 경우

              csql> CREATE FUNCTION Sp_int(i int) RETURN int
                       AS LANGUAGE JAVA
                       NAME 'SpCubrid.SpInt(int) return int';

              2-1. 과 차이점을 비교해보시면 파라미터 값이 있어서 어떻게 달라지는지 아실 수 있을 겁니다.
              int 데이터 타입의 경우에는 그냥 int 라고 써주셔도 됩니다.

         2-3. 리턴 값으로 ResultSet을 리턴하는 경우

              csql> CREATE FUNCTION rset() RETURN cursor
                       AS LANGUAGE JAVA
                       NAME 'JavaSP2.TResultSet() return java.sql.ResultSet';

              ResultSet을 리턴한다고 하더라고 리턴 값의 타입을 명시해주는 부분 외에는 큰 차이가 없습니다.



    3. CUBRID Store Function을 사용하려고 할 때 호출하는 방법입니다.

         3-1. 파라미터 값이 없고, 리턴 값이 문자열을 리턴하는 경우

              3-1-1. CALL Hello() INTO :HELLO;

                   단독으로 사용할 경우 CALL문 뒤에 리턴 값을 저장할 임의의 변수명(HELLO)을 선언해서 사용할 수 있습니다.

              3-1-2. select Hello() from game;

                   SQL Query에서 사용할 경우 Query 중간에 문자열이 들어갈 수 있는 공간에 적절하게 사용하시면 됩니다.

              ※ 숫자형 또는 다른 데이터 타입을 리턴하는 경우에도 데이터 타입이 다르다는 것 외에는 동일합니다.

         3-2. 파라미터 값이 있고, 리턴 값이 있는 경우

              파라미터 값이 없는 경우에서 사용할 Function 이름 옆에 파라미터 값을 넣어주는 것 말고는 차이점이 없습니다.

         ※ 추가적인 예시를 더 적는 것보다 http://www.cubrid.org/manual/ko/9.3.0/sql/jsp.html 에서 'Java 저장 함수/프로시저 호출' 부분에 잘 나와 있습니다.



    4. 주의사항

         CUBRID에서 Java Stored Procedure 및 Function을 사용하시려면 CUBRID 서버가 설치되는 환경에 Java Runtime Environment (JRE) 1.6 이상 버전이 설치되어 있어야 합니다.
         
         또 $CUBRID/conf/cubrid.conf 파일 시스템 변수 중에 java_stored_procedure=yes 를 추가로 적어주고, 변경된 내용을 적용하려면 CUBRID 서버를 재시작 해야 합니다.

List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 CUBRID 사용자를 위한 DBeaver 도구 출시 안내 admin 2024.04.23 49
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 4458
2434 io 확인 2 으아악 2016.10.18 14271
2433 큐브리드 내보내기 했을 시 특정 테이블의 data 쿼리가 없습니다... 1 싸댕 2016.10.13 14889
2432 sha1 에서 sha2로 암호변경 1 밈s 2016.10.11 14838
2431 웹브라우저(https://IP:8001)로 접속할 경우 접근 IP제한설정 문의 1 밈s 2016.10.11 14516
2430 Caused by: java.lang.NullPointerException: null at cubrid.jdbc.driver.CUBRIDResultSet.getMetaData(CUBRIDResultSet.java:668) 1 secret 최원영 2016.10.11 19
2429 root권한으로 구동한 cubrid를 일반계정으로 변경하는 방법 문의 2 밈s 2016.10.11 14608
2428 session timeout 1 secret 밈s 2016.10.10 18
2427 db.access와 관련된 문의 사항 6 secret 밈s 2016.10.10 11
2426 쿼리 브라우져 내보내기 기능 관련 1 secret 처음처럼초보 2016.10.07 13
2425 query 사용문의 4 봉보로봉봉 2016.10.05 14310
2424 큐브리드 메니저에서 뷰편집이나 좌측하단 DDL 선택시 나오는 sql문이 잘려서 나옵니다. 2 하아품 2016.10.04 15183
2423 큐브리드 매니저 마이그레이션 플러그인 오류 1 file 태태리 2016.10.01 9274
2422 cubrid 9.3 dba 암호 분실 2 secret 태리 2016.09.30 398
2421 큐브리드 password file open error 1 유산균- 2016.09.29 8452
2420 cubrid에서 mssql 접근 1 전투코알라 2016.09.27 8277
2419 to_date 사용방법문제요 2 owlowl 2016.09.24 9403
2418 group_concat 사용 방법 1 owlowl 2016.09.22 8878
2417 clob 입력 문제요.. 1 owlowl 2016.09.20 9687
2416 큐브리드 function 질문. 1 태태리 2016.09.08 11654
» 큐브릐드 함수/프로시져 java class 만들기 1 태태리 2016.09.08 13832
Board Pagination Prev 1 ... 74 75 76 77 78 79 80 81 82 83 ... 200 Next
/ 200

Contact Cubrid

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