oracle 저장 프로세스 및 사용자 정의 함수 (저장 함수) 초학

2351 단어 oracle 학습
1. 저장 프로세스와 저장 함수의 주요 차이
저장 함수는return을 통해 함수 값을 되돌릴 수 있다.저장 함수는 SQL 문장 내부에서 호출할 수 있다.저장 함수는 저장 과정에 비해 많은 제한이 있다.저장 프로세스는 select 문장으로 기록집을 되돌려주고 저장 함수는 표 변수로 기록집을 되돌려줍니다.
2. 저장 프로세스와 저장 함수 생성
저장 프로세스의 생성
       :
   CREATE OR REPLACE PROCEDURE MYPROCEDURE(PARAM1 IN NUMBER,PARAM2 OUT VARCHAR2)
   AS|IS  //    ,     
   BIGIN
   //     
   SELECT SALARY INTO  PARAM2 FROM SALARYTABLE WHERE USERS.ID=PARAM1; 
   END
저장 함수의 생성
FUNCTION 키워드를 사용합니다. 만드는 방식은 동일합니다. 반환 값이 하나일 때return을 사용하여 반환할 수 있고, 여러 인자를 반환할 때 저장 프로세스를 사용하여 반환할 수 있습니다.
CREATE [OR REPLACE] FUNCTION MYPROCEDUREFUN(PARAM1 IN NUMBER)
		//     
		RETURN NUMBER
		AS
		PARAM2 NUMBER(5,2);
		BEGIN
		  SELECT SALARY INTO PARAM2 WHERE SALARYTABLE WHERE USERS.ID=PARAM1;
		  RETURN NVL(PARAM2,0);
		END;

3. 저장 함수와 저장 프로세스의 호출 방식
스토리지 프로세스 호출 EXEC | EXECUTE 또는 PLSQL 문
저장 함수에 대한 호출 AELECT MYPROCEDUREFUN(매개변수) FROM TABLE
4.JAVA에서 호출 저장 프로세스와 저장 함수 사용
메모리 프로세스 호출
   String SQL="{CALL MYPROCEDURE(?,?)}";
   Connection conn=JDBCUtils.getConnection();
   CallableStatement  call=conn.prepareCall(SQL);
   //  in  (     )
   call.setInt(1,12345);
   //  out  (     )
   call.registerOutParameter(2,oracleTypes.VARCHAR2);
   call.execute();
   //    
   String PARAM2=call.getString(2);
메모리 함수 호출
   String SQL="?={CALL MYPROCEDURE(?)}";
   Connection conn=JDBCUtils.getConnection();
   CallableStatement  call=conn.prepareCall(SQL);
   //      (     )
    call.registerOutParameter(1,oracleTypes.NUMBER);
   //  in  (     )
   call.setInt(2,12345);
   call.execute();
   //    
   Double returnVal=call.getDouble(1);

5. 저장 프로세스 또는 저장 함수 반환 결과 집합
반환 집합은 PLSQL에 사용되는 커서와 가방에 대한 지식을 다음 글에서 소개하고 사용 방법을 제시한다.
패키지 정의:
  CREATE [OR REPLACE] PACKAGE MYPACKAGE 
  AS
  //       --       
  TYPE SALCURSOR  IS REF CURSOR;
  PROCEDURE QUERYSALLIST(DNO IN NUMBER, OUTLIST OUT  SALCURSOR);
  END MYPACKAGE;
패키지:
  CREATE [OR REPLACE] PACKAGE BODY MYPACKAGE 
  AS
    //      
    PROCEDURE QUERYSALLIST(DNO IN NUMBER, OUTLIST OUT  SALCURSOR)
	AS
	BEGIN
	//        
	OPEN OUTLIST FOR SELECT * FROM SALTABLE WHERE  DEPNO=DNO;
	END [QUERYSALLIST];
  END;
응용 프로그램에서 패키지의 저장 프로세스나 저장 함수를 사용할 경우 패키지 이름을 붙여야 한다.

좋은 웹페이지 즐겨찾기