* SQL*Plus 실행
* PL/SQL 문 입력이 끝났음을 SQL *Plus 에 알리기 위해, 마지막에 슬래시(/) 를 입력해야 한다.
대개 피해를 주진 않지만, 슬래시는 중요한 특징이 몇 가지 있다.
* 스크립트 실행
스크립트 파일명을 알고 있다면 '@' 명령어를 사용하는 것이 스큷트를 실행하는 가장 손쉬운 방법이다.
@ = START 의 실행결과는 동일하다.
스크립트 파일이 다른 디렉토리에 있으면 파일명을 경로와 함께 쓰면 된다.
@@ - 현재 실행되는 파일의 디렉토리에서 상대적으로 파일을 찾아라
그래서 다른 디렉토리에 있는 스크립트에서 또 다른 스크립트를 호출한다면?
현재 세션에 사용할 수 있는 SET 값을 모두 보고 싶다면
AUTOCOMMIT
기본값을 AUTOCOMMIT ON 으로 ,
ON - 커밋되지 않은 변경사항을 커밋한다.
OFF - 커빗되지 않은 변경사항을 롤백 한다.
DISCONNECT
연결된 상태로 데이터베이스와의 연결을 끊고 싶은 경우
자,SQL 명령은 여기까지~ 이제 본격적으로 PL/SQL 의 기본 구문을 알아보도록 하겠습니다~
* 저장프로그램 생성하기.
CREATE 생성 예시문
기존에 wordcount 라는 이름의테이블이나 저장 프로그램이 이미 존재하는 경우 오류메시지를 내면서 시패할 것이다. 오라클이 'OR REPLACE' 옵션을 제공하는 이유중 하나가 바로 이것 때문이다.
CREATE 작업의 99% 정도는 작업할 때 이 옵션을 사용하길 원할 것 이라고 한다..(이렇게 강력하게 권고하다니;;;)
CREATE 생성 권고 예시
OR REPLACE 옵션을 사용하므로써 해당 프로그램을 삭제하고 재생성할 때생기는 부작용을 피할 수 있다.
다른 사용자나 롤에 부여되어 있는 객체권한을 계속 유지 할 수 있다는 것이다.
SELECT * FROM books;
콘솔이나 GUI 에서는 문장 끝에 세미콜론을 반드시 붙여야 하지만 iSQL*Plus 에서 한 행의 질의를 사용할때는 그럴 필요가 없다.* PL/SQL 문 입력이 끝났음을 SQL *Plus 에 알리기 위해, 마지막에 슬래시(/) 를 입력해야 한다.
대개 피해를 주진 않지만, 슬래시는 중요한 특징이 몇 가지 있다.
1. 슬래시는 SQL 이든 PL/SQL 이든 상관없이 "가장 최근에 입력된 문장을 실행하라" 는 뜻이다.
2. SQL*Plus 에서 슬래시는 유일한 명령어로서, PL/SQL 이나 SQL 의 일부분이 아니다.
3. 슬래시 자체가 한 행에 나와야 한다
4. 오라클 9i 하위버전의 SQL*Plus 에서 공백을 슬래시 앞에 입력하면 작동하지 않는다.
SQL*Plus의 PL/SQL 사용자는 EXECUTE 명령어를 사용하면
BEGIN , END, 마지막에 붙이는 슬래시를 입력하지 않아도 된다.
SQL > EXECUTE DBMS_OUTPUT.PUT_LNE('hey look')
EXECUTE 는 축약될 수 있고, 대소문자를 가리지 않기 때무에, 다음처럼 사용 할 수 있다.
SQL > exec dbms_output.put_line('hey look')
2. SQL*Plus 에서 슬래시는 유일한 명령어로서, PL/SQL 이나 SQL 의 일부분이 아니다.
3. 슬래시 자체가 한 행에 나와야 한다
4. 오라클 9i 하위버전의 SQL*Plus 에서 공백을 슬래시 앞에 입력하면 작동하지 않는다.
SQL*Plus의 PL/SQL 사용자는 EXECUTE 명령어를 사용하면
BEGIN , END, 마지막에 붙이는 슬래시를 입력하지 않아도 된다.
원문 SQL >
BEGIN
BEGIN
DBMS_OUTPUT.PUT_LINE('hey look')
END;
/
/
SQL > EXECUTE DBMS_OUTPUT.PUT_LNE('hey look')
EXECUTE 는 축약될 수 있고, 대소문자를 가리지 않기 때무에, 다음처럼 사용 할 수 있다.
SQL > exec dbms_output.put_line('hey look')
* 스크립트 실행
스크립트 파일명을 알고 있다면 '@' 명령어를 사용하는 것이 스큷트를 실행하는 가장 손쉬운 방법이다.
SQL> @파일이름.확장자명
SQL> START 파일이름.확장자명
SQL> START 파일이름.확장자명
@ = START 의 실행결과는 동일하다.
스크립트 파일이 다른 디렉토리에 있으면 파일명을 경로와 함께 쓰면 된다.
SQL> @/파일경로A/파일경로B/파일이름.확장자명
@@ - 현재 실행되는 파일의 디렉토리에서 상대적으로 파일을 찾아라
그래서 다른 디렉토리에 있는 스크립트에서 또 다른 스크립트를 호출한다면?
REM 파일명 : 파일명... REM은 주석
@@파일명.확장자명
@@파일명.확장자명
@@파일명.확장자명
@@파일명.확장자명
현재 세션에 사용할 수 있는 SET 값을 모두 보고 싶다면
SQL> SHOW ALL
AUTOCOMMIT
기본값을 AUTOCOMMIT ON 으로 ,
ON - 커밋되지 않은 변경사항을 커밋한다.
OFF - 커빗되지 않은 변경사항을 롤백 한다.
SQL>SET AUTOCOMMIT OFF[ON]
DISCONNECT
연결된 상태로 데이터베이스와의 연결을 끊고 싶은 경우
SQL>DISCONNECT
자,SQL 명령은 여기까지~ 이제 본격적으로 PL/SQL 의 기본 구문을 알아보도록 하겠습니다~
CREATE 생성 예시문
CREATE FUNCTION wordcount (str IN VARCHAR2)
RETURN PLS_INTEGER
AS
RETURN PLS_INTEGER
AS
로컬 변수 선언
BEGIN
알고리즘 처리
END;
/
/
기존에 wordcount 라는 이름의테이블이나 저장 프로그램이 이미 존재하는 경우 오류메시지를 내면서 시패할 것이다. 오라클이 'OR REPLACE' 옵션을 제공하는 이유중 하나가 바로 이것 때문이다.
CREATE 작업의 99% 정도는 작업할 때 이 옵션을 사용하길 원할 것 이라고 한다..(이렇게 강력하게 권고하다니;;;)
CREATE 생성 권고 예시
CREATE OR REPLACE FUNCTION wordcount (str IN VARCHAR2)
RETURN PLS_INTEGER
AS
RETURN PLS_INTEGER
AS
로컬 변수 선언
BEGIN
알고리즘 처리
END;
/
/
OR REPLACE 옵션을 사용하므로써 해당 프로그램을 삭제하고 재생성할 때생기는 부작용을 피할 수 있다.
다른 사용자나 롤에 부여되어 있는 객체권한을 계속 유지 할 수 있다는 것이다.
'DataBase > Oracle PL/SQL' 카테고리의 다른 글
[1장] PL/SQL 맛보기 (0) | 2010.06.02 |
---|