在where语句中执行Oracle函数

时间:2016-08-26 09:21:01

标签: oracle plsql

如何在where语句中使用Oracle函数(已创建)?我有这样的事情:

SELECT a, b, c
FROM x.y
WHERE d = function('x')

2 个答案:

答案 0 :(得分:0)

给定SQL范围中定义的函数:

CREATE FUNCTION fnct( value VARCHAR2 ) RETURN VARCHAR2
AS
BEGIN
  RETURN value;
END;
/

您可以完全按照问题中的说明调用它:

SELECT *
FROM   DUAL
WHERE  dummy = fnct( 'X' );

或者在PL / SQL中:

DECLARE
  value VARCHAR2(10);
BEGIN
  SELECT dummy
  INTO   value
  FROM   DUAL
  WHERE  dummy = fnct('X');
END;
/

答案 1 :(得分:-1)

尝试下面它会对你有用

SELECT a, b, c
FROM x,y
WHERE d = (select function('x') from dual);

使用PLSQL匿名块。

declare

z number;

begin

SELECT a
into z
FROM test
WHERE a = late_return_fee (2,3);

end;