十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
下面是一个函数的简单示例!建议阅读相关书籍以便充分理解!毕竟很多细节是很难一一描绘的.系统看看书会比较好!
站在用户的角度思考问题,与客户深入沟通,找到韶山网站设计与韶山网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站设计、网站制作、企业官网、英文网站、手机端网站、网站推广、域名注册、网站空间、企业邮箱。业务覆盖韶山地区。
函数是有名称的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;
调用函数
select get_sal(7839) from dual;
删除函数
DROP FUNCTION get_salary;
基本概念
存储过程和存储函数相当于一个东西。
存储过程在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;
create or replace
FUNCTION "函数名"
(
A in number,
B in number,
name in VARCHAR2
)
BEGIN
insert into 表名 values(A+B,name);
END 函数名;
//花括号里边就是需要传的参数,name如果是固定的可以直接写死,就不用传参了
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;