Пытаюсь объявить курсор, но у меня появляется конец файла! (Oracle SQL) - PullRequest
0 голосов
/ 11 июля 2020

Я сейчас изучаю Oracle SQL и сейчас использую курсоры. Я знаю, что это небольшая проблема, и, вероятно, ее легко решить, но в моем заявлении содержится ошибка конца файла. (PLS-00103)

Вот утверждение:

declare cursor CustCursor is select * from Customers where cust_email is null;

Любая помощь будет принята с благодарностью, возможно, также стоит знать, что я следовал Sams Teach Yourself SQL Забронируйте, и у меня все еще возникают эти проблемы.

Спасибо!

1 Ответ

1 голос
/ 11 июля 2020

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>
...