Oracle:从字符串中删除前4个字符

时间:2013-12-29 18:58:03

标签: sql string oracle

所以我想从oracle的字符串中删除前4个字符。这些角色每次都可以不同。 在我的情况下,我需要拿走IBAN的前4个字符并将它们放在字符串的末尾。我得到了将它们放在字符串末尾的部分,但是我无法将前4个字符删除。我在互联网上找到的每个解决方案都会删除指定的字符,而不是字符串中某个位置的字符(1到4)。 我使用下面的代码来获取字符串末尾的前4个字符,并希望尝试类似的方法在前面删除它们但没有成功。

SELECT SUBSTR(iban_nummer, 1, 4) INTO iban_substring FROM dual;
iban_nummer := iban_nummer || iban_substring;

3 个答案:

答案 0 :(得分:10)

请参阅docs

  

substring_length ...       如果未为此参数指定值,则该函数会将所有字符返回到字符串的结尾。当你指定   如果值小于1,则函数返回NA。

所以iban_nummer := substr(iban_nummer, 5) || substr(iban_nummer, 1,4)应该有效。第一部分选择从第5个开始的所有字符,第二个字符编号为1..4。

答案 1 :(得分:6)

update table_name set col_name=substr(col_name,5);

答案 2 :(得分:1)

尝试 regexp ,例如:

SELECT regexp_replace(t.iban_nummer,'(.{4})(.*)','\2\1') FROM t;