DECLARE
не может существовать в одиночку во Вселенной - это часть блока PL / SQL, который также требует как минимум фиктивной BEGIN-END
его части .
Это то, что у вас есть:
SQL> declare cursor CustCursor is select * from Customers where cust_email is null;
2 /
declare cursor CustCursor is select * from Customers where cust_email is null;
*
ERROR at line 1:
ORA-06550: line 1, column 78:
PLS-00103: Encountered the symbol "end-of-file" when expecting one of the
following:
begin function pragma procedure subtype type <an identifier>
<a double-quoted delimited-identifier> current cursor delete
exists prior
Это то, что вы должны иметь:
SQL> declare cursor CustCursor is select * from Customers where cust_email is null;
2 begin
3 null;
4 end;
5 /
PL/SQL procedure successfully completed.
SQL>
Или, как говорит Эд Стивенс, поставить все на свои места (хотя результат будет точно таким же):
SQL> declare
2 cursor CustCursor is select * from Customers where cust_email is null;
3 begin
4 null;
5 end;
6 /
PL/SQL procedure successfully completed.
SQL>