0

我创建了这个stored procedureOracle使用Toad Data Point

create or replace PROCEDURE show_users
(
    CUR OUT SYS_REFCURSOR
)
AS
BEGIN
  OPEN CUR FOR
    select * From dba_users;
END show_users;

我使用以下代码执行它,但我得到了Bind Variables弹出窗口,这是可以理解的:

declare
    mycursor SYS_REFCURSOR;     

    begin
     show_users( :mycursor );
    end;

我得到这个弹出窗口:

在此处输入图像描述

以下内容Executed Successfully和弹出窗口没有显示,但没有显示任何内容,因为我没有告诉它显示参考光标的内容:

declare
    mycursor SYS_REFCURSOR;     

    begin
     show_users( mycursor );
     --print mycursor;
    end;

我的问题:如何消除Bind VariablesToad 中的 Popup 或显示 a 的内容SYS_REFCURSORprint mycursor;适用于SQL DEVELOPER但不适用于 Toad。

我只想在没有额外输入的情况下测试存储过程。

4

3 回答 3

0

删除其名称前面的冒号。它是一个本地声明的变量,不需要将它用作参数。

于 2019-06-28T15:25:16.513 回答
0

尝试Set Define Off;

我不确定这是否对您有用,但是在 SQL Developer 中工作时它对我有用,并且我需要编译具有绑定变量(例如触发器)的代码或包含绑定变量的报告 sql。

于 2019-06-28T17:38:49.357 回答
0

Toad 数据点中的文档解释了这一点: 注意:

避免在同一 SQL 语句中使用相同的符号来表示绑定变量和语句分隔符。在编辑器中,单击以启用/禁用 SQL 中的绑定变量。禁用时,Toad 不会扫描 SQL 以获取参数。此按钮默认启用(按下)。

它就在数据库选择下拉列表旁边。尝试使用 :new.id 创建触发器时遇到了同样的问题

于 2021-01-20T08:14:17.920 回答