例如:

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  语句中调用的函数不能包含结束事务的语句



过程与函数:

oracle plsql 自定义函数_数据类型