【发布时间】:2021-05-26 14:55:26
【问题描述】:
我的 oracle 表有一列包含这些数据:
| ROW_ID | FILE_NAME |
|---|---|
| 1 | ZASWEFFT%Contract V1.pdf |
| 2 | ZZZZxxxx12%Contract 03.12.14.pdf |
我需要删除之前的所有内容,包括 % 字符,这会给我:
| ROW_ID | FILE_NAME |
|---|---|
| 1 | Contract V1.pdf |
| 2 | Contract 03.12.14.pdf |
我发现了类似的question 我对其进行了更改以适合我的需要,并且 select 语句有效:
SELECT SUBSTR(value, INSTR(value, '%')+1) invalue
FROM (SELECT FILE_NAME value FROM SFDC.PROJECT_ATT));
结果:
| INVALUE |
|---|
| Contract V1.pdf |
| Contract 03.12.14.pdf |
但我无法将其转换为 update 语句。我最后一次尝试是:
UPDATE SIEBEL.S_PROJ_ATT T1
SET T1.FILE_NAME =
(SELECT SUBSTR(value,
INSTR(value,
'%') + 1) invalue
FROM (SELECT T2.FILE_NAME value
FROM SIEBEL.S_PROJ_ATT T2
WHERE T1.ROW_ID = T2.ROW_ID))
Oracle 说语法很垃圾:ORA-00904: "T1"."ID": invalid identifier
【问题讨论】: