Doctrine orm 条令2自定义功能其他模式或包

Doctrine orm 条令2自定义功能其他模式或包,doctrine-orm,Doctrine Orm,我试图让Doctrine使用Oracle PL/SQL函数,但这也适用于其他模式中的存储函数。我知道如何创建自定义DQL函数。但是调用包函数时,名称中有一个点,例如UTL\u MATCH.EDIT\u DISTANCE(s1,s2)。我无法让条令来解析这个。我修改了parse函数,如下所示: 但它就是无法识别功能。我能让这一切顺利吗?还是我被本地查询所困扰?我是个哑巴。只需在getSql方法中指定包名,如下所示: public function getSql(SqlWalker $sqlWalk

我试图让Doctrine使用Oracle PL/SQL函数,但这也适用于其他模式中的存储函数。我知道如何创建自定义DQL函数。但是调用包函数时,名称中有一个点,例如
UTL\u MATCH.EDIT\u DISTANCE(s1,s2)
。我无法让条令来解析这个。我修改了
parse
函数,如下所示:


但它就是无法识别功能。我能让这一切顺利吗?还是我被本地查询所困扰?

我是个哑巴。只需在
getSql
方法中指定包名,如下所示:

public function getSql(SqlWalker $sqlWalker)
{
    return \sprintf(
        'UTL_MATCH.EDIT_DISTANCE(%s, %s)',
        $this->firstStringExpression->dispatch($sqlWalker),
        $this->secondStringExpression->dispatch($sqlWalker)
    );  
}

然后在DQL中使用不带
UTL\u匹配前缀的函数。

我是个哑巴。只需在
getSql
方法中指定包名,如下所示:

public function getSql(SqlWalker $sqlWalker)
{
    return \sprintf(
        'UTL_MATCH.EDIT_DISTANCE(%s, %s)',
        $this->firstStringExpression->dispatch($sqlWalker),
        $this->secondStringExpression->dispatch($sqlWalker)
    );  
}
然后在DQL中使用不带
UTL\u匹配
前缀的函数