【问题标题】:How do I get the return value from a function in Oracle using Toad如何使用 Toad 从 Oracle 中的函数获取返回值
【发布时间】:2011-01-28 10:25:09
【问题描述】:

如何在 Toad 中找出函数的返回值是什么?

我正在运行类似这样的代码:

declare r number;
begin
    r:= packagename.functionname(paraname);
end;

我不知道如何将“r”返回到数据网格,一些帖子建议使用 DBMS 输出,但在我运行代码时没有写入任何内容。

该函数执行更新、提交、调用其他函数并在其中包含游标。

【问题讨论】:

    标签: oracle toad


    【解决方案1】:
    begin
        dbms_output.put_line(packagename.functionname(paraname));
    end;
    

    在运行此之前,您需要打开输出。为此,选择编辑器底部的“DBMS 输出”选项卡,然后单击选项卡下最左侧的按钮(它应该描绘一个红色圆圈,工具提示“打开输出”(如果它是一个绿色圆圈,输出已经开启))。

    查询的结果将被写入“DBMS 输出”窗口,而不是“数据网格”(您可能需要等待几秒钟才能让轮询获取结果)。如果您使用用户定义的类型或引用游标,这将是不够的,您需要在写出之前在匿名块中处理结果。

    【讨论】:

    • 您也可以在底部的同一区域打开“执行后自动轮询输出”。
    【解决方案2】:

    怎么样:

    select packagename.functionname(paraname) from dual; 
    

    【讨论】:

    • 试过但得到:“ORA-14552 无法在查询或 DML 中执行 DDL、提交或回滚。”编辑帖子以提供更多信息。
    【解决方案3】:

    来自克劳斯的回答

    select packagename.functionname(paraname) from dual;

    为我工作,但它只返回一个光标。这在 Toad 的数据网格中显示为 (CURSOR)。一旦我双击它,它就会打开一个新窗口,其中包含该光标的数据网格,我看到了我的结果。

    【讨论】:

    • 这更像是评论而不是问题的新答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多