【发布时间】:2019-09-13 10:20:34
【问题描述】:
有一个带有单词和 word_id 的临时表。临时表中有带有特殊字符的单词,例如 . , - . word_id 是从转义特殊字符的主表中更新的。
例如,我们有“数字”。 &“数字-”在临时表中。 main_table 有数字和数字。
我需要将临时表中的单词替换为 www.xxx.com/"word"(不带特殊字符)/"word_id"。由于临时表有“数字”。我希望它是“www.xxx.com/digits/123”。需要保留开头/结尾的特殊字符。
update temp set temp.word = '<a href=www.xxx.com/'||temp.word||'/'||temp.word_id where temp.word where temp.word_id is not null;
此代码给出 www.xxx.com/digits./123,但我希望它是 www.xxx.com/digits/123。
Here is the test data:
CREATE TABLE TEMP
(ID NUMBER,
WORD VARCHAR2(4000 BYTE),
WORD_ID NUMBER
);
CREATE TABLE main_table
(ID NUMBER,
WORD VARCHAR2(4000 BYTE));
insert into temp(id,word) values (1, 'digits.');
insert into temp(id,word) values (2, '.numbers-');
insert into main_table values(111, 'digits');
insert into main_table values(222, 'numbers');
临时表看起来像
ID WORD WORD_ID
1 digits. 111
2 numbers- 222
The expected outcome is
ID WORD WORD_ID
1 www.xxx.com/digits/111. 111
2 www.xxx.com/numbers/222- 222
【问题讨论】:
-
www.xxx.com/numbers/222-222后面有一个破折号吗? -
那是因为我们有数字- 。我只需要替换数字并按原样保留破折号。开头/结尾处的任何特殊字符。
-
我不明白,我似乎无法将您预期输出中的数据与两个源表相关联。
-
例如:有一句话“数字 8 和 9 是数字。”我将每个单词按空格分解为临时表中的行。所以最后一行是“数字”。我需要将其替换为 www.xxx.com/digits/111 并应在末尾保留特殊字符,因为我必须合并所有行以形成句子但带有链接。我们根据业务需求采取了这种方法。希望这会有所帮助!
标签: regex oracle replace substring