Java TRIM替换LTRIM/RTRIM

Java TRIM替换LTRIM/RTRIM,java,sql,spring,oracle,jpa,Java,Sql,Spring,Oracle,Jpa,我对甲骨文是相当陌生的 如果我想替换Oracle 11g中的前导空格和尾随空格,可以安全地说LTRIM(RTRIM())完全可以被TRIM()替换吗 另外,当我试图在使用JPA的查询中使用此函数时,我得到错误“org.hibernate.hql.internal.ast.QuerySyntaxException:意外的ast节点” 以下是我正在使用的查询: @Query("Select p from OldPin p WHERE TRIM(p.eeNo) = :accNum and TRIM(

我对甲骨文是相当陌生的

如果我想替换Oracle 11g中的前导空格和尾随空格,可以安全地说
LTRIM(RTRIM())
完全可以被
TRIM()替换吗

另外,当我试图在使用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(都是from),那么它将从两侧删除一个角色 如。, Trim(来自“111oracle111”的两个“1”)输出将为oracle Trim(从'111oracle111'开始的前导'1')输出将是oracle111 修剪(从“111oracle111”开始的尾部“1”)输出将为111oracle

Trim(来自'abtechab'的'ab')-它将抛出错误,因为Trim只支持单个字符


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

默认情况下,Trim将删除前导空格和尾随空格 例如,微调(“测试”)输出将被测试

如果我们使用Trim(都是from),那么它将从两侧删除一个角色 如。, Trim(来自“111oracle111”的两个“1”)输出将为oracle Trim(从'111oracle111'开始的前导'1')输出将是oracle111 修剪(从“111oracle111”开始的尾部“1”)输出将为111oracle

Trim(来自'abtechab'的'ab')-它将抛出错误,因为Trim只支持单个字符

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

您也可以使用

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

%helloworld%
你也可以用

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

%helloworld%

是的,可以这么说。我认为<代码> LTRIM(rTrime)(r>)/代码>坏编码风格是挑剔的,但是…你所说的“空白”是什么意思?仅仅是空格,或者其他的东西,比如制表符、换行符和不间断的空格?您的示例默认为实际空格,因此它们是等效的;但情况并非总是如此(即,当修剪一组字符时,而不仅仅是一个字符)…为什么修剪调用中有
='e'
-这只是一个打字错误,对于
和trim(p.memberType)='e'
?我认为可以肯定地说,用前导和尾随空格存储字符串通常是一种不好的做法,除非这些是作为价值的一部分。您可能应该修复数据而不是查询。呃,您使用的是JPQL,而JPQL中没有RTRIM/LTRIM。阅读JPQL参考文档。如果你指的是SQL,那么你就需要“nativeQuery”是的,可以这么说。我认为<代码> LTRIM(rTrime)(r>)/代码>坏编码风格是挑剔的,但是…你所说的“空白”是什么意思?仅仅是空格,或者其他的东西,比如制表符、换行符和不间断的空格?您的示例默认为实际空格,因此它们是等效的;但情况并非总是如此(即,当修剪一组字符时,而不仅仅是一个字符)…为什么修剪调用中有
='e'
-这只是一个打字错误,对于
和trim(p.memberType)='e'
?我认为可以肯定地说,用前导和尾随空格存储字符串通常是一种不好的做法,除非这些是作为价值的一部分。您可能应该修复数据而不是查询。呃,您使用的是JPQL,而JPQL中没有RTRIM/LTRIM。阅读JPQL参考文档。如果你指的是SQL,那么你需要“nativeQuery”