오라클 프로시저 생성 예제

Oracle Database를 사용하면 데이터베이스를 데이터베이스에 저장할 수 있으므로 일반적으로 사용되는 코드를 한 번 작성하고 테스트한 다음 필요한 모든 응용 프로그램에서 액세스할 수 있습니다. 또한 데이터베이스에 있는 프로그램 단위는 코드가 호출될 때 데이터가 일관되게 처리되도록 하여 응용 프로그램 개발 프로세스의 용이성과 일관성을 제공합니다. Oracle 데이터베이스 응용 프로그램 개발자 가이드 – 저장 프로시저를 호출하는 방법 및 외부 프로시저 등록에 대한 정보를 포함하여 저장 프로시저에 대한 자세한 내용은 ADD_EVALUATION 프로시저에서 삭제했습니다. 데이터베이스. OUT 매개 변수는 쓰기 가 가능 합니다. 일반적으로 OUT 매개 변수에 대해 반환된 값을 설정하고 호출 프로그램으로 반환합니다. 프로시저는 OUT 매개 변수에 대해 제공하는 값을 무시합니다. PL/SQL에서 필요한 곳이면 어디든 익명 블록, 함수 등 다른 프로시저에서 프로시저를 호출할 수 있습니다. 익명 블록에서 우리를 호출 할 수 있습니다. 기능은 놀랍게도 다재다능합니다. 모든 데이터 형식을 반환할 수 있으며 모든 값이 있을 수 있는 거의 모든 곳에서 사용할 수 있습니다.

하지만 당신은 이미 알고 있었다. 첫날부터 함수를 사용했습니다. 날 믿지 않아? SYSDATE, 어퍼, TO_DATE, 카운트, MIN, MAX 및 NVL은 무엇이라고 생각하십니까? 각각 현재 날짜를 반환하는 함수입니다. 문자열을 매개 변수로 허용하고 대문자 값을 반환하는 함수입니다. 문자열을 매개 변수로 사용 하 고 날짜를 반환 하는 함수입니다. 매개 변수를 계산하는 집계 함수; 최소(또는 최대) 값을 반환하는 집계 함수; 두 매개 변수를 허용하고 첫 번째 매개 변수가 null인 경우 첫 번째 또는 두 번째 매개 변수를 반환하는 함수입니다. 그들과 get_friend_phone_number의 유일한 차이점은 오라클 기능이 내장되어 있다는 것입니다. 위치 표기어에서, 당신은 프로시저를 호출 할 수 있습니다 – 이전에 재정의 된 절차에 대한 권한을 부여 한 사용자는 여전히 권한을 다시 부여하지 않고 절차에 액세스 할 수 있습니다. 저장 프로시저의 구조가 익명 블록의 구조와 거의 동일하다는 것을 알 수 있습니다. 유일한 차이점은 저장 프로시저에 이름을 지정해야 하고 매개 변수를 수락할 수 있으며 선언 섹션의 시작 부분에 DECLARE라는 키워드의 필요성을 배제한다는 것입니다. 또한 이 절에서는 쿼리, DML 작업 및 동적 SQL 문의 외부 이름이 CURRENT_USER의 스키마에서 해결되도록 지정합니다. 다른 모든 문의 외부 이름은 프로시저가 있는 스키마에서 확인됩니다.

변수 및 상수에 의미 있는 이름을 사용하고 좋은 명명 규칙을 사용해야 합니다. 예를 들어 각 상수 이름을 `cons_`로 시작할 수 있습니다. 또한 예약된 단어를 식별자로 사용하지 않도록 해야 합니다. 이 예제에서는 “사용자” 테이블에 레코드를 삽입합니다. 따라서 먼저 사용자 테이블을 만들어야 합니다. 저장 프로시저는 ref 커서를 반환하고 IN 매개 변수를 수락합니다. emp_eval Body 창에서 END emp_eval 선 위에 는 직원 테이블의 일부 열을 사용하여 평가 테이블에 행을 삽입하는 프로시저 add_eval을 추가합니다. 또한 emp_eval 패키지의 본문에 로컬 함수 add_eval을 만들지만 패키지 사양에서 선언하지는 않습니다. 즉, add_eval은 다른 하위 프로그램에서 emp_eval 패키지 내에서만 호출될 수 있습니다. emp_eval Body 창의 코드 끝을 향해 eval_loop_control 프로시저를 추가하여 결과 집합에서 개별 레코드를 가져오고 처리합니다.

이 코드의 대부분은 “명시적 커서 사용”의 eval_department 프로시저의 이전 정의에서 나온 것입니다. 새 구조체는 굵은 글꼴로 표시됩니다. 프로시저는 이름으로 호출할 수 있는 PL/SQL 문의 그룹입니다. 호출 사양(호출 사양이라고도 함)은 SQL 및 PL/SQL에서 호출할 수 있도록 Java 메서드 또는 3세대 언어(3GL) 루틴을 선언합니다.