我的数据库的 oracle 游标语法有什么问题?

what is wrong with the syntax of cursor in oracle for my database?

SQL> CREATE TABLE DOCTOR (
  2  DID INT PRIMARY KEY NOT NULL,
  3  DNAME VARCHAR (15) NOT NULL,
  4  QUALIFICATION VARCHAR(15)
  5  );

Table created.

SQL> CURSOR C_DOCTOR IS SELECT DID,DNAME,QUALIFICATION FROM DOCTOR;
SP2-0734: unknown command beginning "CURSOR C_D..." - rest of line ignored.

我一直在遵循显式游标的语法,但我仍然收到此错误。你能帮帮我吗?

游标必须位于 PL/SQL 块内,无论是匿名块还是命名块(例如存储过程、函数或包)。您不能单独声明游标。

Cursor 不想在 space 中独处,它需要一些 PL/SQL 环境。那将是一个 PL/SQL 块,它的 DECLARE 部分。最简单的方法是

SQL> CREATE TABLE DOCTOR (
  2      DID INT PRIMARY KEY NOT NULL,
  3      DNAME VARCHAR (15) NOT NULL,
  4      QUALIFICATION VARCHAR(15)
  5      );

Table created.

SQL> declare
  2    CURSOR C_DOCTOR IS SELECT DID,DNAME,QUALIFICATION FROM DOCTOR;   --> this is your line
  3  begin
  4    null;
  5  end;
  6  /

PL/SQL procedure successfully completed.

SQL>

是的,非常无用,但是 - 它可以编译。