例如:
CREATE OR REPLACE FUNCTION HELLO(str IN VARCHAR2)
RETURN VARCHAR2
IS
RET VARCHAR2(20);
BEGIN
RET := 'Hello ' || str;
DBMS_OUTPUT.put_line(RET);
RETURN RET;
END;
执行:
SELECT HELLO('yang') FROM DUAL;
删除:
DROP FUNCTION HELLO;
不能像java里那样进行重载。
从SQL中调用函数的限制
为了从SQL 表达式中调用函数,用户定义函数必须:
•只接受IN参数
•只接受有效的SQL 数据类型,而不接受PL/SQL特殊的类型
作为参数
•返回数据类型为有效的SQL数据类型,而非PL/SQL 特殊的
类型
• 在一个表上的 UPDATE 或 DELETE 语句中调用的函数不能查询及更新同一个表
• 从 SQL 语句中调用的函数不能包含结束事务的语句
过程与函数: