该线程包含一些有关oracle中功能的有用提示/示例,论坛成员可能会觉得有用。
功能:
==========
1.它是一个已存储为数据库中对象的编译代码块。
2.IT必须将值返回到调用过程。
3.一旦创建功能,它将成为双表的一部分。
4.如果功能包含任何输出或输入参数,则无法在语句级别执行该功能。
基本语法
=============
CREATE [OR REPLACE] FUNCTION FUNCTION NAME[PARAMETER PARAMETER MODE],....])]
RETURN DATATYPE
{IS/AS}
[LOCAL DECLARATION]
BEGIN
EXECUTABLE STATMENT
RETURN VALUE;
[EXCEPTION
EXCEPTION HANDLER]
RETURN VALUE;
END [FUNCTIONNAME];
示例代码显示无参数函数
===================================
CREATE OR REPLACE FUNCTION HELLO RETURN VARCHAR2 IS
BEGIN
RETURN 'Hello welcome to TSDN';
END HELLO;
打电话
--------------
select hello from dual;
参数中的样本功能
=================================
CREATE OR REPLACE FUNCTION date_diff (max_date STRING, min_date STRING)
RETURN PLS_INTEGER IS
BEGIN
RETURN TO_DATE(max_date) - TO_DATE(min_date);
EXCEPTION
WHEN OTHERS THEN
RETURN NULL;
END date_diff;
执行功能
------------------------------------------------
SELECT date_diff('15-JUL-1980', '19-MAR-1979') FROM dual;
在模式功能示例2中
============================
CREATE OR REPLACE FUNCTION EVENODD(num_in NUMBER) RETURN STRING IS
BEGIN
IF MOD(num_in, 2) = 0 THEN
RETURN 'EVEN';
ELSE
RETURN 'ODD';
END IF;
END EVENODD;
执行
------------------------
select evenodd(1234) from dual;
在模式功能示例3中
============================
CREATE OR REPLACE function shoname (num in number) return string is
name varchAr2(10);
begin
select ename into name from emp where empno=num;
return name;
end;
执行
------------------------
SELECT shoname (7788) FROM DUAL;
在模式功能示例4中
============================
create or replace function spelldate(dt date) return varchar2 as
mdate varchar2(50);
begin
select to_char(dt,'ddspth month year') into mdate
from dual;
return mdate;
end;
还要检查
PL / SQL功能-2From: https://bytes.com/topic/oracle/insights/743248-pl-sql-functions-1-a
138

被折叠的 条评论
为什么被折叠?



