如何使用TRIM从Oracle中的给定输入中获取值?

如何使用TRIM从Oracle中的给定输入中获取值?,oracle,oracle10g,Oracle,Oracle10g,'您的UTR SBINH13246802674 RTN'这是输入。我只想从上述输入中获取'SBINH13246802674'。这个值被插入到另一列中,这就是我获取该特定值的原因。条件是仅使用Oracle TRIM功能。是否可以使用TRIM获取该值?您可以使用以下选择查询: SELECT TRIM(' ' FROM TRIM(TRAILING 'R' FROM TRIM(TRAILING 'T' FROM TRIM(TRAILING 'N' FROM TRIM('R' FROM TRIM('T'

'您的UTR SBINH13246802674 RTN'这是输入。我只想从上述输入中获取'SBINH13246802674'。这个值被插入到另一列中,这就是我获取该特定值的原因。条件是仅使用Oracle TRIM功能。是否可以使用TRIM获取该值?

您可以使用以下选择查询:

SELECT TRIM(' ' FROM TRIM(TRAILING 'R' FROM TRIM(TRAILING 'T' FROM TRIM(TRAILING 'N' FROM TRIM('R' FROM TRIM('T' FROM TRIM('U' FROM 
       TRIM(' ' FROM TRIM('R' FROM TRIM('U' FROM TRIM('O' FROM TRIM('Y' FROM 'YOUR UTR SBINH13246802674 RTN')))))))))))) DATA
FROM   DUAL;
此方法使用重复修剪,每次删除一个不需要的字符串

但是,更好的方法是:

SELECT REPLACE(REPLACE('YOUR UTR SBINH13246802674 RTN', 'YOUR UTR '), ' RTN')
FROM   DUAL;

如果您只想使用修剪,请使用以下选项

select rtrim(ltrim('YOUR UTR SBINH13246802674 RTN', 'YOUR UTR '), 'RTN') from dual;
如果您需要处理任何函数,那么考虑到所有数据都具有相同的格式和长度,您可以使用下面的UTR{data}

select substr('YOUR UTR SBINH13246802674 RTN' , 10, 16) from dual;

从“您的UTR SBINH13246802674 RTN”中修剪引导“您的UTR”;从“SBINH13246802674 RTN”修剪“尾随”RTN;为了修剪,修剪一次只需要一个字符。对我的11g运行您的语句会产生错误:ORA-30001:trim集合应该只有一个字符30001。00000-修剪集应该只有一个字符*原因:修剪集包含的字符数大于或小于1个。这在TRIM函数中是不允许的。条件是只使用Oracle TRIM函数,为什么?有很多更好的方法可以做到这一点;您的其他数据是什么样子的?格式是什么?这是你的UTR SBINH*********RTN吗?-1:这对其他人有什么用处?