当前位置: 首页 > 知识库问答 >
问题:

如何从Oracle SQL Developer中的查询窗口返回一组结果?

百里默
2023-03-14

对于此代码:


DECLARE 
    v_APPL_ID               NUMBER(10,0) := 0;
    v_ADMIN_PHS_ORG_CODE    VARCHAR2(2 BYTE) := ' ';
    v_SERIAL_NUM            NUMBER(6,0) := 0;
    v_Proj_Appl_Rec         Proj_Appl_Rec;
    v_Proj_Appl_Tab         Proj_Appl_Tab := Proj_Appl_Tab();
    v_Proj_Appl_Cur         SYS_REFCURSOR;
    v_cnt                   NUMBER := 0;
    GrantApplications_CUR   SYS_REFCURSOR;

开始ireport_portfolios.getPortfolioAppsandProjects(null,190,'Dynamic',null,v_Proj_Appl_Cur);

--dbms_output.put_line('appl_id' || chr(9) || 'ic' || chr(9) || 'serial_num');   
LOOP
  FETCH v_Proj_Appl_Cur
  INTO v_APPL_ID, v_ADMIN_PHS_ORG_CODE, v_SERIAL_NUM;
  EXIT WHEN v_Proj_Appl_Cur%NOTFOUND;
  v_Proj_Appl_Tab.extend;
  v_cnt := v_cnt + 1;
  v_Proj_Appl_Tab(v_cnt) := Proj_Appl_Rec(v_APPL_ID, v_ADMIN_PHS_ORG_CODE, v_SERIAL_NUM);
  --dbms_output.put_line( v_APPL_ID || chr(9) || v_ADMIN_PHS_ORG_CODE || chr(9) ||  v_SERIAL_NUM);
END LOOP;
CLOSE v_Proj_Appl_Cur;

     OPEN GrantApplications_CUR FOR
      WITH Appls_CTE
      AS
      (
         SELECT DISTINCT
                pa.Appl_Id
           FROM TABLE(v_proj_appl_tab) pa
      )

      SELECT ga.appl_id, council_meeting_date
      FROM Appls_CTE ac
      JOIN grant_appls ga
      ON ac.appl_id = ga.appl_id;

    RETURN   GrantApplications_CUR;

结束;

错误报告-ORA-06550:第41行,第9:PLS-00372:在过程中,RETURN语句不能包含表达式ORA-06550:第41行,第9:PL/SQL:语句忽略06550。00000-“行%s,列%s:\n%s”*原因:通常是PL/SQL编译错误。*行动:

我尝试取出CTE并加入“table(v_proj_appl_tab)PA”。但我得到了同样的错误。

这里的最后一步是什么才能看到结果?如何在不编写包过程的情况下从一个简单的查询窗口返回这样的结果?

现在我得到这个错误:

错误报告-ORA-06502:PL/SQL:数值或值错误ORA-06512:at“link_od_ireport.ireport_portfolios”,第217行ORA-06512:at“link_od_ireport.ireport_portfolios”,第83行ORA-06512:at第12行065 02。00000-“PL/SQL:数值或值错误%s”*原因:出现算术、数值、字符串、转换或约束错误。例如,如果尝试将值NULL赋给声明为NOT NULL的变量,或者尝试将大于99的整数赋给声明为NUMBER(2)的变量,则会发生此错误。*操作:更改数据、操作方式或声明方式,以使值不违反约束。现在我得到这个错误:


共有1个答案

宫高义
2023-03-14

在12C中,他们通过dbms_sql.return_result添加了对PL/SQL隐式语句结果的支持。

declare
  l_cursor_1 SYS_REFCURSOR;
BEGIN
  OPEN l_cursor_1 FOR
    SELECT table_name
    FROM   user_tables
    WHERE  rownum < 5;
  DBMS_SQL.RETURN_RESULT(l_cursor_1);
END;
/
 类似资料:
  • 问题内容: 我有以下从数据库获取十六进制代码的函数 我的问题是我在回调函数中返回了结果,但getColour函数未返回任何内容。我希望getColour函数返回的值。 在我调用getColour的那一刻,它不返回任何内容 我尝试做类似的事情 但当然SELECT查询在返回值时已经完成 问题答案: 您只需要对回调中的db查询结果进行处理。就像。

  • Firebase查询返回此查询的值 该项由model类捕获 但是,返回null

  • 我正在尝试计算配置单元中视图的平均/最小/最大记录计数 并试图实现如下内容: 但我收到一条错误消息: avg=5 min=4 max=6

  • 我有下表,其中包含PostID和到rootPostId的映射 我有以下疑问: 返回结果: 我希望返回以下内容,以便返回的第一个postId是传递到查询中的相应postId(postId=2),如下所示。 返回所需结果:

  • 我正在尝试在Firebase中进行简单搜索以从我的Firebase数据中返回数据,但没有任何返回。 JSON结构 我的Firebase搜索代码如下 但一旦代码被执行,它就会返回null。还有一种方法可以搜索特定字段。

  • 我正在玩mongob,并将一些测试数据{name:"david"}输入到“用户”集合中。我通过键入mongoshell验证了数据在MongoDB中 结果: 在 node.js 脚本中,使用以下代码: 不返回任何结果 我没有发现任何错误,也没有错误。请告知