在 Oracle 中创建“普通”UDF 与宏 UDF 有什么区别?例如,对于宏,他们给出了一个例子:
CREATE FUNCTION date_string(dat DATE)
RETURN VARCHAR2 SQL_MACRO(SCALAR) IS
BEGIN
RETURN q'{
TO_CHAR(dat, 'YYYY-MM-DD')
}';
END;
/
Run Code Online (Sandbox Code Playgroud)
并为一个函数。
在什么用例中宏比普通函数更有用?什么时候使用函数比宏更好?其中一个是否比另一个具有性能优势或局限性?