実際に実行しているSQLをそのまま提示したほうが良いと思われます。
あくまで想像ですが、以下のように1行目が「create or replace」になってはいませんか?
sql
1create or replace
2declare
3
4 dname varchar2(10);
5
6begin
7
8 for dept_rec in (select dept_id,dept_name from dept) loop
9 dname := dept_rec.dept_name;
10 dbms_output.put_line(dname);
11 end loop;
12
13exception
14
15 when others then
16 dbms_output.put_line('エラー発生!!');
17
18end;
次のコマンドの開始中にエラーが発生しました : 行 1 -
create or replace
declare
dname varchar2(10)
エラー・レポート -
SQLエラー: ORA-00922: オプション指定されていないか、または無効です。
00922. 00000 - "missing or invalid option"
*Cause:
*Action:
ただし「declareの部分」でエラーとなっているわけではないので、違うかもしれませんね。
ちなみにプロシージャを作成するならば、以下のとおりです。
※一部、scott.dept表の定義に合わせて、dept_id → deptno、dept_name → dname としています。
sql
1create or replace procedure test_proc
2as
3 dname varchar2(10);
4begin
5 for dept_rec in (select deptno,dname from dept) loop
6 dname := dept_rec.dname;
7 dbms_output.put_line(dname);
8 end loop;
9exception
10 when others then
11 dbms_output.put_line('エラー発生!!');
12end;