oracle让函数先执行一次,执行oracle函数的四种方法

在将数据库从SQLSERVER迁移到ORACLE的过程中,遇到一个挑战:ORACLE函数无法直接返回结构化数据集。文章介绍了通过在函数中使用临时表来实现类似功能的方法,并提供了四种执行ORACLE函数的方式。详细步骤包括定义和执行函数的示例,帮助读者理解如何在ORACLE中处理类似问题。
摘要由CSDN通过智能技术生成

最近在对数据库进行从SQLSERVER改造到ORACLE过程中遇到了一个头疼的问题,SQLSERVER

可以返回一个结构化的数据集,ORACLE函数不行,要执行函数(含返回值),函数过程中将语句插进事务性临时表里再读取临时表

找到如下资料,执行ORACLE函数的方法:

1.在定义函数时:如果有参数,则参数可有类型但是不加长度。

2.在执行函数: var/variable var_name var_type(如果数据类型是number则没有长度,如果数据类型是varchar2,则可以写长度)

call(此处不能用exec) 函数名(参数) into :var_name;

举例:SQL>var dd varchar2

SQL>call get_sal(7788) into :dd;

执行oracle函数的四种方法:

首先,创建函数fun_stu:

create or replace function fun_stu(iname varchar2) return varchar2 is

r varchar2(20);

begin

select s.value into r from student s where s.name =iname;

return (r);

end;

1.方法一

输入以下语句

SQL> variable a varchar2(20)

SQL> begin

:a:=fun_stu('ba');

end;

/

输出结果:

PL/SQL procedure successfully completed

a

---------

A

输出变量的值

SQL> print a

a

---------

A

2.方法二

输入以下语句

SQL> variable a varchar2(20)

SQL> call fun_stu('ba') into :a;

输出结果

Method called

a

---------

A

输出变量值

SQL> print a

a

---------

A

3.方法三

输入以下语句

SQL> variable a varchar2(20)

SQL> execute :a:=fun_stu('BA');

输出结果

PL/SQL procedure successfully completed

a

---------

C

输出变量值

SQL> print a

a

---------

C

4.方法四

使用sql语句调用

select   fun_stu('ba') from dual;

输出结果

A

附加问题:  PLSQL 命令窗口执行语句按回车有效,执行无效?

转载来源:https://wenku.baidu.com/view/b6baae2a7375a417866f8f96.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值