我正在使用Oracle PL/SQL。我有一个 varchar 列Filtre
我想更改数据
例:
Filtre = "User@12.4|Tab@3.15.16.25.12.1.4|Sort@3.4.15.12"
我需要更改Tab@3.15.16.25.12.1.4|
之间的值。例如,我用 18 替换 15,用 19 替换 16。
谢谢
我会给你一些 Oracle 提供的通用函数,这些函数应该足以进一步帮助你。看看 Oracle 函数 REPLACE, INSTR, SUBSTR, TRANSLATE。使用 INSTR,您可以在另一个字符串中找到字符串的位置。所以 INSTR( filtre, 15, m, n) 从字符串中位置 15 的 m 位置开始返回第 n 次出现。不知道需求是什么,我不确定你是否可以用一个简单的 REREPLACE 来做,或者你需要更深入地研究并使用像 SUBSTR 这样的函数。请记住,您可以嵌套这些函数,并且可能需要多次才能获得所需的结果。从现在开始我会远离正则表达式,首先尝试掌握 PL/SQL/中的基本函数
http://www.techonthenet.com/oracle/functions/index.php
我解决了问题
将表临时创建为
选择
克莱,登场||
regexp_replace(replace(replace(replace(fin, '.20.', '.34.'), '.24','.35'), '.26','.36'),'.(.*).','\1')
结果从(选择克莱,
regexp_replace(ligne,'(.COLTAB@).,'\1')登场,
regexp_replace(ligne,'(.COLTAB@)()\|','.\2.')鳍
从(选择 ID cle, filtre ligne from favoris where type ='test'));
UPDATE favoris f SET f.filtre = (SELECT t.resultat 从温度 t 其中 f.ID = t.cle) 其中类型='测试';
下降表温度;