Stored procedures Oracle Sql Developer中的引用游标

Stored procedures Oracle Sql Developer中的引用游标,stored-procedures,cursor,oracle-sqldeveloper,Stored Procedures,Cursor,Oracle Sqldeveloper,我需要在OracleSQLDeveloper中编写一个引用游标,但我不知道它是如何编写的。我只知道基本的问题 在查阅了各种示例后,我已经尽我所知编写了下面的游标。我收到一个编译错误“缺少或无效选项” 有人能帮我吗 步骤1:我在Oracle sql developer版本4中创建了一个新过程。 步骤2:我编写了以下游标 DECLARE routeid VARCHAR2(10); cursor c1 IS SELECT shipment_id FROM SHIPMENT WHERE shi

我需要在OracleSQLDeveloper中编写一个引用游标,但我不知道它是如何编写的。我只知道基本的问题

在查阅了各种示例后,我已经尽我所知编写了下面的游标。我收到一个编译错误“缺少或无效选项”

有人能帮我吗

步骤1:我在Oracle sql developer版本4中创建了一个新过程。 步骤2:我编写了以下游标

DECLARE
routeid  VARCHAR2(10);
cursor     c1 IS
SELECT shipment_id FROM SHIPMENT
WHERE shipment_id = 20;

BEGIN
OPEN c1;
 LOOP
   FETCH c1 INTO routeid;
   EXIT WHEN c1%NOTFOUND;
   DBMS_OUTPUT.PUT_LINE(routeid);
 END LOOP;
END;
/

提前感谢您的帮助。

实现简单光标的更好方法

CREATE OR REPLACE PROCEDURE Test_cursor (Out_Pid OUT VARCHAR2) AS 
cursor  c1 IS
SELECT shipment_id,p_id FROM test
WHERE shipment_id = 99;

c1_rec c1%rowtype;

BEGIN
 OPEN c1;
  LOOP
  FETCH c1 INTO c1_rec;
  EXIT WHEN c1%NOTFOUND;

  Out_Pid := c1_rec.p_id;
  DBMS_OUTPUT.PUT_LINE('Result from query '||c1_rec.p_id );
  DBMS_OUTPUT.PUT_LINE('Result from out parameter '||Out_Pid );
 END LOOP;

  END Test_cursor;

完美执行时没有错误什么问题?SQL developer有问题。它已排序。@Sanjay:可以告诉我如何计算光标返回的行数吗?我是否可以使用DBMS_输出进行行计数?如果是,我怎么做?我想计算查询返回的行数,并使用DBMS_OUTPUT显示。PUT_line您不能直接从要在变量上创建的ref cursor中计算行数,并通过循环迭代递增行数。@sanjayradadiya:需要一些专家建议:正如您在我的回答中看到的,我将结果输入到了c1_rec。现在是我的下一期就是,我希望这个游标有out参数,并且每行的值都应该保存在这个out参数中。例如,c1_rec.p_id应该移到相应值的out参数中…这有意义吗?有没有关于如何做到这一点的样本?