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