我对Oracle相当陌生。

如果我想替换Oracle 11g中的前导空格和尾随空格,可以肯定地说LTRIM(RTRIM(<myVarchar>))完全可以由TRIM(<myVarchar>)替换吗?

另外,当我尝试在使用JPA的查询中使用此功能时,出现错误“ org.hibernate.hql.internal.ast.QuerySyntaxException:意外的AST节点”。

这是我正在使用的查询:

@Query("Select p from OldPin p WHERE TRIM(p.eeNo) = :accNum and
TRIM(p.pinStatus) = 'A' and TRIM(p.memberType='E') and TRIM(p.sCode) in
('MSHK','MCMG')")
    public OldPin findByAccountNum(@Param("accNum") String accNum);

最佳答案

修剪会默认删除前导空格和尾随空格
例如。 Trim('test')输出将被测试

如果我们使用Trim(都来自),那么它将从两侧删除一个字符
例如。,
Trim('111oracle111'的'1')输出将是oracle
修剪(从'111oracle111'领先'1')输出将是oracle111
修剪(从'111oracle111'追踪'1')输出将为111oracle

修剪(均为“ abtechab”的“ ab”)-它将引发错误,因为修剪仅支持单个字符

在RTrim和LTrim中,我们可以删除任意数量的字符。

07-25 23:57