TRIM替代LTRIM / RTRIM

时间:2018-07-11 13:06:36

标签: java sql spring oracle jpa

我刚接触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); 

2 个答案:

答案 0 :(得分:1)

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

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

修剪(都是'abtechab'的'ab')-它将抛出错误,因为修剪仅支持单个字符

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

答案 1 :(得分:1)

您也可以使用

select '%'||replace(' hello world ', ' ' , '')||'%' from dual;

输出为

%helloworld%