2017-10-15 12 views
0

私はplsqlの初心者であり、プロシージャを使用してタスクを実行するコードを実装しようとしています。Oracle 10gを使用しています。stu_packという名前のパッケージをすでに作成しています。パッケージ本体は無駄です。助けてください。 私は与えられたコース名の学生の詳細を提供する手続きを作りたいと思います。 コードは以下の通りです。エラーPLS-00103プロシージャの実行中

エラーメッセージがある:PLS-00103:次のいずれかを期待シンボル "PROCEDURE" が発生しました:行14に

ERROR。削除が先に存在する

記号 ";"続行するために "PROCEDURE"の代わりに使用されました。

パッケージ本体stu_packを プロシージャproc1(cname IN番号)として作成または置き換えます。 l_cname number(2);あなたが行end procedure proc1を変更する必要が

CREATE OR REPLACE PACKAGE BODY stu_pack AS 

    PROCEDURE proc1 (
     cname IN NUMBER 
    ) AS 

     l_cname NUMBER(2); 
     cur1  student%rowtype; 
     CURSOR c1 IS SELECT 
      s.* 
        FROM 
      student s, 
      course c, 
      learn l 
        WHERE 
      c.cname = l_cname 
      AND c.cid = l.cid 
      AND s.sid = l.sid; 

    BEGIN 
     OPEN c1; 
     LOOP 
      FETCH c1 INTO cur1; 
      EXIT WHEN c%notfound; 
      dbms_output.put_line('student roll number:' 
      || cur1.sid 
      || ' student 
      name:' 
      || cur1.sname 
      || ' phone number:' 
      || cur1.phone); 

     END LOOP; 

     CLOSE c1; 
    END procedure proc1; 

END stu_pack; 
/
+0

でなければなりません。 – sagi

+0

エラーメッセージは次のとおりです。14行目のエラー:PLS-00103:次のいずれかが予想される場合、シンボル "PROCEDURE"が発生しました。 ; 削除が先に存在する シンボル ";"続行するために "PROCEDURE"の代わりに使用されました。 1.パッケージ本体stu_packを として作成または置き換えます。2.プロシージャproc1(cname IN番号)を とします。3. l_cname number(2); – Yash

答えて

0

これは、全体のエラーメッセージを入力してください単に

end; 

または

end proc1; 
+0

はい、それは私がやっていた間違いでした...ありがとう – Yash

関連する問題