2012-10-01 3 views
3

간단한 커서를 작성하여 Unix, SQL Plus의 명령 줄 Oracle 클라이언트에서 실행하려고합니다. 나는 주로 한 줄의 문장을 사용 해왔고 한 번 작성한 후에 여러 줄의 문장을 실행할 수있는 방법을 찾을 수 없습니다. 아무도 도와 줄 수 있니? 여기 Unix에서 SQL Plus로 다중 회선 문 실행

내 코드입니다 :

DECLARE 
    TYPE array_t IS varray(4) OF varchar2(10); 
    ARRAY array_t := array_t('foo', 'bar', 'stack', 'overflow'); 
BEGIN 
    FOR i IN 1..array.count loop 
     dbms_output.put_line(array(i)); 
    END loop; 
END; 

감사

답변

9

SQL에서 PL/SQL 블록을 실행 * PLUS의 PL/SQL 블록의 끝에 슬래시를 추가하려면 :

SQL> DECLARE 
    2  TYPE array_t IS varray(4) OF varchar2(10); 
    3  ARRAY array_t := array_t('foo', 'bar', 'stack', 'overflow'); 
    4 BEGIN 
    5  FOR i IN 1..array.count loop 
    6   dbms_output.put_line(array(i)); 
    7  END loop; 
    8 END; 
    9/
+0

그것과 그냥 입력의 차이점은 무엇입니까? ? 둘 다 똑같은 일을하는 것처럼 보입니다. – amphibient

+3

마침표 ('.')는 PL/SQL 모드를 종료하지만 PL/SQL 블록을 실행하지 않고'run' 명령이나 슬래시 /'do를 실행합니다. –

+0

또한'/'이 반드시 있어야한다는 것을 발견했습니다. – FloorDivision