执行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> call fun_stu('ba') into :a; 输出结果 Method called a --------- A 输出变量值 SQL> print a a --------- A 3.方法三 输入以下语句 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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |