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

新手上路,请多包涵

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

原文由 Gamidron 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.9k
2 个回答

请参阅 文档

substring_length … 如果您没有为此参数指定值,则函数将所有字符返回到字符串的末尾。当您指定一个小于 1 的值时,该函数返回 NA。

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

原文由 Guntram Blohm 发布,翻译遵循 CC BY-SA 3.0 许可协议

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

原文由 Sai 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进