Tags
- Android
- solidity
- Interaction developer
- postman automations
- web developer
- postman collection variables
- postman excel
- 우수한 프런트 개발자
- UI/UX Engineer
- Android/iOS Developer
- Unity
- postman tests
- 다빈치 리졸브
- LSL_Script
- Intellij
- postman session
- postman collection
- 프런트엔드
- c#
- emplace_back
- postman
- postman csv
- postman pre-request
- Java
- MFC
- Front-end developer
- oracle
- postman html parse
- C++
- 좋은 개발자
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Archives
- Today
- Total
david's daily developer note
PL/SQL 1. Stored Procedure 기본 선언 및 실행. 본문
728x90
PL/SQL 언어 중에서 가장 대표적인 구조인 Stored Procedure는 개발자가 자주 실행해야 하는 업무 흐름을 이 문법에 의해 미리 작성하여 데이터 베이스 내에 저장해 두었다가 필요할 때마다 호출하여 실행할 수 있다.
1. Insert 하는 Stored Procedure를 queryTimeMeasurement .sql에 작성한다.
SQL> vi queryTimeMeasurement .sql
Create or replace Procedure queryTimeMeasurement IS
Begin
insert into test(id) values('hi');
end queryTimeMeasurement;
2. SQL plus에서 queryTimeMeasurement .sql를 수행하여 Procedure를 생성한다.
SQL> @queryTimeMeasurement .sql
created procedure.....
SQL> execute queryTimeMeasurement
SQL> SELECT * FROM test;
여기서 커서란 개념을 알아야한다. 커서란 SQL Plus에서 사용자가 실행한 SQL문의 단위를 의미한다.
오라클에서 수행한 모든 쿼리문은 커서 단위로 처리합니다.
PL/SQL의 SQL문처럼 하나의 결과를 리턴하는 경우 커서 없이도 SQL문의 실행결과가
암시적으로 커서에 저장되므로 이를 암시적 커서라고 합니다.
SQL문을 수행한 후에 결과로 얻어지는 행이 여러 개일 경우에는 암시적인 커서에 정보를
저장할 수 없기에 에러가 발생합니다. 이럴 경우에는 반드시 명시적인 커서를 사용해야 합니다.
명시적인 커서는 PL/SQL의 레코드(RECORD)와 PL/SQL의 테이블(TABLE)을 결합한 것으로서
프로그램 언어의 구조체 배열과 유사합니다.
insert , update , delete 의 경우, 하나의 결과를 리턴받기 때문에 암시적 커서에 저장되지만 Select의 경우에는
다수의 행을 결과로 받기 때문에, 명시적인 커서를 사용해야 한다.
아래는 그예이다.
Create or replace Procedure queryTimeMeasurement IS
type rc is ref cursor;
l_rc rc;
Begin
open l_rc for
'SELECT * From test';
close l_rc;
end queryTimeMeasurement;
SELECT 결과를 받는 l_rc 라는 커서를 명시하였다.
728x90
'Develop (kids)' 카테고리의 다른 글
PostgreSQL PL/SQL CREATE FUNCTION (0) | 2010.07.01 |
---|---|
PL/SQL 2. 다수의 SQL 수행 시간 측정하기. (0) | 2010.06.30 |
원격 윈도우 종료 , 재부팅 (0) | 2010.06.29 |
PostgreSQL 원격 접속 허용 (0) | 2010.06.28 |
PostgreSQL + GIS 설치 및 Spatial DB 개발 환경 구성 (0) | 2010.06.25 |