所以我想从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;
答案 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;