当前位置:知识百科 > 正文

oracle怎么做函数

更新时间:2025-01-06 11:01 阅读量:64290

如何创建oracle函数

create?or?replace?function?f(d?number)

return?varchar

is

begin

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

end?f;

oracle中如何创建函数,本人用的是pl/sql,初学者,最好能给出例子和详细讲解

下面是一个函数的简单示例!建议阅读相关书籍以便充分理解!毕竟很多细节是很难一一描绘的.系统看看书会比较好!

函数是有名称的pl/sql块

函数有返回值

在表达式中调用函数

存储在服务器端

CREATE OR REPLACE FUNCTION get_sal

(v_id IN emp.empno%TYPE) RETURN NUMBER

IS

v_salary emp.sal%TYPE :=0;

BEGIN

SELECT sal INTO v_salary FROM emp WHERE empno = v_id;

RETURN (v_salary);

END get_sal;

/

验证对象

select object_name,object_type from user_objects;

查看原程序

select text from user_source;

调用函数

删除函数

DROP FUNCTION get_salary;

Oracle函数的使用

接收字符返回字符或数值时可以使用dual伪表

①.、把小写字符转换成大写

select supper("smi") form dual

lower("SMI")

initcap("smi")

concat("hello""world") 结果为helloworld

length("hello")

replace("hello","l","x") 结果为hexxo

①.、四舍五入函数ROUND()

默认取整,可以指定保留位数

默认全部去掉小数,可以指定位数

oracle中提供了很多和日期相关的函数,包括日期的加减

日期 - 数字 =日期

日期 - 日期 = 数字(天)

①.、如:查询员工进入公司的走数

注:当前日期查询select sysdate form dual

获取两个时间段的月数使用months_between(sysdate,入职日期)

如:获取员工三个月后的日期

指定给出下次某日期数next_date()

next_date(sysdate,"星期一")

求出本月的最后一天

last_day(sysdate)

①.、to_char字符串转换函数

如:将所有员工的入职日期的年、月分开

注:在划分时需要通配符

年:yyyy? 月:mm? 日:dd

时:HH 分:mi? 秒:ss

定义时间格式

在10以下的月数前面会默认加上前导零,去除加上fm

to_char还可以给数字做格式化

如将员工的工资按三位","分隔

如果想在钱上加上国家符号

美元使用

中文使用l

to_number("10") +to_number("10")

①.、空值处理 nvl

如果在查询的时候存在空值的情况可以使用

nvl(comm,0) 当comm的列值为空时,用0代替

该函数类似于if ...else if ...else

decode(中国,中国,我是中国,美国,我是美国,其他)

如果为中国返回我是中国,为美国返回我是美国,为其他字符则返回其他.

语法 case when city=中国 then 我是中国

? ? ? ? ? ? ? when city=美国 then 我是美国

? ? ? ? ? ? ? ? else 其他

oracle 怎么创建一个函数?

create or replace

FUNCTION "函数名"

(

A in number,

B in number,

)

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

END 函数名;

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

以上就是春福百科网小编为大家整理的oracle怎么做函数相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!