Search results for 'Oracle_DB_Unix admin/(7)Oracle PLSQL Programming'

Creating and Running PL/SQL Code

2016. 3. 13. 13:24

※ Oracle PL/SQL Programming 6판 기준입니다. (O'REILLY)


#Creating and Editing Source Code (22p)


What is unique about PL/SQL is the fact the the source code for stored programs must be loaded into the database before it can be compiled and executed.

--> PL/SQL은 다른 프로그램(C 등)과 달리, 데이터 베이스 안에서 compile되고 구동되어야 하기 때문에 일반 java program 등과 달리 version 관리 등에 고민해야 할 부분들이 발생한다.


#Starting Up SQL*Plus (24p)

3 ways to connect to a database with SQL*Plus


(1)

>sqlplus

Enter user-name : system

Enter password : ******

connect to (...)

SQL>


(2)

> sqlplus system/******

※do not recommend because of possibility of the password being leaked 

--> 어깨너머로 훔쳐 볼 수 도 있고, UNIX등 multi user 환경에서는 실제로 OS user가 수행한 명령어를 확인할 수 있다. 


(3)
> sqlplus /nolog

SQL> connect system/******

SQL> Connected.

--> nolog 구문을 이용하여 접속은 후에 맺는 식으로 패스워드 유출을 막을 수 있음.



#Running A PL/SQL Program (27p)


예제1)

begin

  dbms_output.put_line('Hey look, ma!');

end;

/

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

PL/SQL 프로시저가 성공적으로 완료되었습니다.


예제2)

set serveroutput on

begin

  dbms_output.put_line('Hey look, ma!');

end;

/         

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

PL/SQL 프로시저가 성공적으로 완료되었습니다.

Hey look, ma!


※기억해야 할 점

1. set serveroutput on 옵션을 켜야 PL/SQL 결과가 출력된다.

2. /(slash)를 반드시 입력해야 한다.


**    /(slash)의 역할 및 특징  **

To tell SQL*Plus that you're done entering a PL/SQL statement, you must usually include a trailing slash

1. sql*plus 상에서 / 는 '가장 최근에 입력된 문장을 수행하라'는 명령어이다. (PL/SQL, SQL 상관없이)

2. The slash is a command unique to SQL*Plus; it is not part of the PL/SQL language, nor is it part of SQL.

3. It must appear on a line by itself; no other commands can be included on the line.

4. Oracle 9i 이전의 버전은 / 앞, 뒤의 공백유무에 따라 수행이 안될수도 있다. (9i 이후버전은 앞뒤 공백 모두 상관 없다.)


예제3) BEGIN, END, / (slash) 입력없이 수행하기


execute dbms_output.put_line('Hey look, Ma!')

exec dbms_output.put_line('Hey look, Ma!!!!')


EXECUTE란 command를 통해 Begin, end, /를 모두 생략가능하다. 

1) semicolon (;)은 붙여도 되고 안붙여도 된다.

2) execute의 축약형으로 exec를 사용가능하다.

곰돌곰둘 Oracle_DB_Unix admin/(7)Oracle PLSQL Programming