执行oracle函数的四种方法

最近在对数据库进行从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

你可能感兴趣的:(ORACLE数据库)