2014-05-11 9 views
0

나는 커서 예제를 작동 시키려고 노력하고 있지만, 그렇게 할 수는 없습니다. IDE : Oracle SQL 개발자 데이터베이스 : 10g sql oracle모든 커서 예제를 컴파일 할 수 없습니다.

이 세 가지 예제를 시도했지만 제대로 컴파일되지 않았습니다. 누군가가 실제 예제를 제공 할 수 있습니까?
첫 번째 : 편집 : 작동합니다!

DECLARE my_cursor1 CURSOR FOR 
SELECT name, surname 
    FROM personal_data 
    WHERE name='Karol'; 

이^오류 :

Error report - 
ORA-06550: row 1, column 27: 
PLS-00103: found symbol "FOR" when expected one of following: 

    := . (@ % ; not null range default character 
06550. 00000 - "line %s, column %s:\n%s" 
*Cause: Usually a PL/SQL compilation error. 
*Action: 

또는이 : 편집 :이 하나가 OK, 그냥 내 IDE가 처음 무시 '어디 어디'

DECLARE 
    CURSOR person_data_cur 
    as 
     SELECT * 
     FROM personal_data 
     WHERE where name='Karol'; 
BEGIN 
    FOR person_data 
    IN person_data_cur 
    LOOP 
     DBMS_OUTPUT.put_line (
     person_data.surname); 
    END LOOP; 
END; 

이 단지했다 두 라인, 그리고 다른 사람을 처형 ...하지만 그것은 어떤 블록이나 프로 시저 안에 wasnt 이후 괜찮아요 같아요

CURSOR c1 
IS 
    SELECT course_number 
    FROM courses_tbl 
    WHERE course_name = name_in; 
+0

오, 어리석은 내가 어디 선 6 example1 ---> 작품 .... : D 하지만 다른 확실한 방법을 모르겠다 2 예제 – user3263155

+0

만약 당신이 게시하면 더 쉬워 질 것입니다 오류도. – EvilTeach

+0

@EvilTeach 편집 – user3263155

답변

0

두 번째 예 : 구문이 잘못되었습니다. 커서에 대한 의사 코드는 다음과 같습니다 세 번째 예를 들어

 Declare 
      Cursor Cursor_name 
      is 
       select * from table where <Conditions>; 
      Begin 
      For cur_Rec in cursor_name 
       Loop 
        <what you want to do> 

       End Loop; 
      End; 

, 내가 name_in는 입력 매개 변수입니다 생각에 구문 수정하시기 바랍니다 :

 CURSOR c1 (name_in VARCHAR2) 
     IS 
     SELECT course_number 
     FROM courses_tbl 
     WHERE course_name = name_in; 

자세한 내용

을위한 Cursor Declaration을 참조하세요
관련 문제