成都网站建设设计

将想法与焦点和您一起共享

oracle如何创建函数,oracle自定义函数语法

107 ORACLE 创建存储过程,存储函数

基本概念

临高网站建设公司创新互联建站,临高网站设计制作,有大型网站制作公司丰富经验。已为临高1000+提供企业网站建设服务。企业网站搭建\外贸网站建设要多少钱,请找那个售后服务好的临高做网站的公司定做!

存储过程和存储函数相当于一个东西。

存储过程在Oracle里叫procedure。

存储过程没有返回值。

存储函数在Oracle里叫function。

存储函数有返回值。

基本语法

create or replace procedure 名字

--create or replace 意思是创建或者替换

as

--可以在此定义参数

begin

语句;

end;

例:

create  or  replace   procedure   sayhello

as

--说明 相当与declare

begin

dbms_output.put_line('Hello World');

end;

基本调用

begin

-- Call the procedure

sayhello;

sayhello;

sayhello;

end;

带参数的存储过程--查询某个员工的年收入

create or replace procedure upmoney(testname in test_procedure.name%type) 

as

begin 

update test_procedure t set t.money = t.money + 1000

where t.name = testname; 

end 

upmoney;

特别的地方,参数要指明是输入参数还是输出参数。

存储函数

create or replace function Fupmoney(tname in varchar2)    return number

as     --定义月薪参数

tmoney test_procedure.money%type;

begin

--得到月薪

select t.money

into tmoney

from test_procedure t

where t.name = tname;

dbms_output.put_line(tmoney*12);

return(tmoney*12);

end;

创建一个多输出参数的存储函数例子

create or replace procedure manyparm(tname in varchar2,

                                tjob out varchar2,

                                tmoney out number,

                                tdept out varchar2)

is

begin

select t.job,t.money,t.dept

  into tjob,tmoney,tdept

  from test_procedure t

  where t.name = tname;

end manyparm;

Oracle函数的创建问题 用的是scott用户的emp表

你这是无返回类型啊。

应该这么写试试。

create or replace function fu_pr02 return varchar2 as ----创建函数fu_pr02

2 number is yearsal number(7,2);---定义自变量yearsal

3 begin

4 select sal*12+nvl(comm,0)*12 into yearsal from emp where ename='WARD';--查询用户名叫wade的年薪并赋值给yearsal

5 return yearsal;

6 end;

Oracle创建一个函数,问题如下:

create or replace function(p_deptno in varchar2)

return number

as

avgsal number(10,2);

begin

select avg(sal) into avgsal from emp where deptno = p_deptno;

return avgsal;

end;

如何创建oracle函数

create or replace function f(d number)

return varchar

is

begin

return substr(d,instr(d,'.')+1);

end f;

select f(12.34) from dual;

oracle 怎么创建一个函数?

create or replace

FUNCTION "函数名"

(

A in number,

B in number,

name in VARCHAR2

)

BEGIN

insert into 表名 values(A+B,name);

END 函数名;

//花括号里边就是需要传的参数,name如果是固定的可以直接写死,就不用传参了

oracle 函数的创建,实现如下查询功能?

下面是一个创建返回结果集的函数的语法的例子:

你参考着

SELECT 'Hello 1' AS a, 'World 1' AS B FROM dual

UNION ALL

SELECT 'Hello 2' AS a, 'World 2' AS B FROM dual;

修改为

select 姓名,性别,班级 FROM student WHERE 性别 = '女'

SQL create or replace package pkg_HelloWorld as

2 -- 定义ref cursor类型

3 type myrctype is ref cursor;

4 --函数申明

5 function getHelloWorld return myrctype;

6 end pkg_HelloWorld;

7 /

程序包已创建。

SQL CREATE OR REPLACE package body pkg_HelloWorld as

2 function getHelloWorld return myrctype

3 IS

4 return_cursor myrctype;

5 BEGIN

6 OPEN return_cursor FOR

7 SELECT 'Hello 1' AS a, 'World 1' AS B FROM dual

8 UNION ALL

9 SELECT 'Hello 2' AS a, 'World 2' AS B FROM dual;

10 return return_cursor;

11 END getHelloWorld;

12 end pkg_HelloWorld;

13 /

程序包体已创建。

SQL SELECT pkg_HelloWorld.getHelloWorld() FROM dual;

PKG_HELLOWORLD.GETHE

--------------------

CURSOR STATEMENT : 1

CURSOR STATEMENT : 1

A B

------- -------

Hello 1 World 1

Hello 2 World 2


分享文章:oracle如何创建函数,oracle自定义函数语法
文章链接:http://chengdu.cdxwcx.cn/article/hseiis.html