oracle存储过程-打印varchar2输出变量

发布于 2024-12-04 01:44:13 字数 282 浏览 1 评论 0 原文

我按如下方式执行存储过程:

var myOutput varchar2

exec myproc(:myOutput)

print myOutput

但是,这不起作用。

我收到一条错误消息:

Bind Variable "myOutput" is NOT DECLARED

当我在其他过程中使用 refcurser 而不是 varchar2 时,这是有效的。我做错了什么?

谢谢!

I execute a stored proc as follows:

var myOutput varchar2

exec myproc(:myOutput)

print myOutput

However, this does not work.

I get an error message saying:

Bind Variable "myOutput" is NOT DECLARED

When I use a refcurser rather than a varchar2 in other procs, this works. What am I doing wrong?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

£冰雨忧蓝° 2024-12-11 01:44:13

所以你有一个像这样的过程:

CREATE OR REPLACE PROCEDURE bark ( woof IN OUT VARCHAR2 )
IS
BEGIN
  woof := 'Woof!';
END bark;

然后你运行:

SQL> var myOutput VARCHAR2(10) 
SQL> exec bark(:myOutput);

PL/SQL procedure successfully completed.

SQL> print myOutput

MYOUTPUT
--------------------------------
Woof!

这与你想要做的相似吗?

So you have a procedure like this:

CREATE OR REPLACE PROCEDURE bark ( woof IN OUT VARCHAR2 )
IS
BEGIN
  woof := 'Woof!';
END bark;

Then you run:

SQL> var myOutput VARCHAR2(10) 
SQL> exec bark(:myOutput);

PL/SQL procedure successfully completed.

SQL> print myOutput

MYOUTPUT
--------------------------------
Woof!

Is this similiar to what you are trying to do?

睫毛溺水了 2024-12-11 01:44:13

这正是您正在运行的吗?如果是这样,我认为问题是您没有指定 myOutput 变量的大小。您需要执行此操作(根据需要调整长度):

SQL> var myOutput varchar2(40)

位于 文档

Is that exactly what you're running? If so, I think the problem is you're not specifying the size of your myOutput variable. You need to do this (adjusting the length as appropriate to your needs):

SQL> var myOutput varchar2(40)

It's in the documentation.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文