【问题标题】:what is wrong with the syntax of cursor in oracle for my database?我的数据库的 oracle 中游标的语法有什么问题?
【发布时间】:2020-02-11 08:22:49
【问题描述】:
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.

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

【问题讨论】:

    标签: sql database oracle plsql cursor


    【解决方案1】:

    Cursor 不想在太空中独处,它需要一些 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>
    

    没错,完全没用,但是 - 它可以编译。

    【讨论】:

      【解决方案2】:

      游标必须在 PL/SQL 块中,无论是匿名的还是命名的(例如存储过程、函数或包)。你不能只声明一个游标自己。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-05-23
        • 2011-02-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多