替换列中的数据 varchar (Oracle SQL)
Replace data in a column varchar (Oracle SQL)
我正在使用 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|
之间的值。
例如,我将 15 替换为 18,将 16 替换为 19。
谢谢
我将向您提供一些 Oracle 提供的通用函数,这应该足以帮助您进一步。查看 Oracle 函数 REPLACE、INSTR、SUBSTR、TRANSLATE。
使用 INSTR,您可以找到一个字符串在另一个字符串中的位置。所以 INSTR( filtre, 15, m, n) returns 第 n 次出现从字符串中位置 m 位置 15 开始。不知道要求是什么,我不确定您是否可以使用简单的 REPLACE 来完成,或者您是否需要更深入地研究并使用像 SUBSTR 这样的函数。请记住,您可以嵌套这些函数,并且可能需要多次嵌套才能获得所需的结果。从现在开始远离正则表达式,先尝试掌握PL/SQL/
中的基本功能
我解决了问题
创建 table 临时为
select
叔叔,
登场||
regexp_replace(
替换(替换(替换(鳍,'.20.','.34.'),'.24','.35'),'.26','.36')
,'.(.*).','\1')
结果
从
(
select
好,
regexp_replace(ligne,'(.COLTAB@).','\1')登场,
regexp_replace(ligne,'(.COLTAB@)(.)\|','.\2.') fin
来自
(
select ID cle, filtre ligne From favoris where Type ='Test'
)
);
UPDATE favoris f SET f.filtre = (SELECT t.resultat
从临时 t
其中 f.ID = t.cle)
其中类型='Test';
下降 table 温度;
我正在使用 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|
之间的值。
例如,我将 15 替换为 18,将 16 替换为 19。
谢谢
我将向您提供一些 Oracle 提供的通用函数,这应该足以帮助您进一步。查看 Oracle 函数 REPLACE、INSTR、SUBSTR、TRANSLATE。 使用 INSTR,您可以找到一个字符串在另一个字符串中的位置。所以 INSTR( filtre, 15, m, n) returns 第 n 次出现从字符串中位置 m 位置 15 开始。不知道要求是什么,我不确定您是否可以使用简单的 REPLACE 来完成,或者您是否需要更深入地研究并使用像 SUBSTR 这样的函数。请记住,您可以嵌套这些函数,并且可能需要多次嵌套才能获得所需的结果。从现在开始远离正则表达式,先尝试掌握PL/SQL/
中的基本功能我解决了问题
创建 table 临时为
select
叔叔, 登场||
regexp_replace( 替换(替换(替换(鳍,'.20.','.34.'),'.24','.35'),'.26','.36') ,'.(.*).','\1')
结果 从 ( select 好,
regexp_replace(ligne,'(.COLTAB@).','\1')登场,
regexp_replace(ligne,'(.COLTAB@)(.)\|','.\2.') fin
来自 ( select ID cle, filtre ligne From favoris where Type ='Test' ) );
UPDATE favoris f SET f.filtre = (SELECT t.resultat 从临时 t 其中 f.ID = t.cle) 其中类型='Test';
下降 table 温度;