首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle返回变量的值

Oracle返回变量的值
EN

Stack Overflow用户
提问于 2022-08-04 10:07:45
回答 1查看 26关注 0票数 0

我要将Microsoft Sql Server数据库迁移到Oracle 19c,迁移的查询失败:

代码语言:javascript
复制
            DECLARE cardnum varchar2(100);
            BEGIN
            MyProcedure('ES', cardnum );
            SELECT cardnum;
            END;

返回的错误是:

代码语言:javascript
复制
     PL/SQL: ORA-00923: FROM keyword not found where expected

我认为错误在第4行:

代码语言:javascript
复制
     SELECT cardnum;

该过程设置变量的值,因此我需要返回变量"cardnum“的值。

我应该用什么代替选择clausule?

注->此查询来自于带有Dapper的net。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-04 10:14:57

好的,您已经有了cardnum,过程将它设置为它的OUT参数,您不需要对它做任何事情。

代码语言:javascript
复制
SQL> create or replace procedure myprocedure(par_1 in varchar2, par_2 out varchar2) is
  2  begin
  3    par_2 := 'ABC';
  4  end;
  5  /

Procedure created.

SQL> declare
  2    cardnum varchar2(100);
  3  begin
  4    myprocedure('ES', cardnum);
  5
  6    dbms_output.put_line('Cardnum = ' || cardnum);
  7  end;
  8  /
Cardnum = ABC

PL/SQL procedure successfully completed.

SQL>

如果您想选择它,可以-但是PL/SQL需要一个INTO子句。例如:

代码语言:javascript
复制
SQL> declare
  2    cardnum varchar2(100);
  3    l_var   varchar2(100);
  4  begin
  5    myprocedure('ES', cardnum);
  6
  7    select cardnum into l_var from dual;
  8  end;
  9  /

PL/SQL procedure successfully completed.

SQL>

这取决于你到底想对cardnum做什么.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73234039

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档