生成表的file_name
字段中的数据应该是指定的编号,然后是_01、_02或_03等,然后是.pdf
(例如82617_01。 pdf)。
程序在指定的数字和 01、02 等之间放置州名称,有时还放置日期/时间戳(82617_ALABAMA_01.pdf 或 19998_MAINE_07-31-2010_11-05-59_AM.pdf 或 5485325_OREGON_01 .pdf 例如)。
我们想开发一个 SQL 语句来查找错误的文件名并修复它们。理论上,查找包含 varchar2
数据类型的文件名并将其删除似乎相当简单,但将语句放在一起却超出了我的能力范围。
任何帮助或建议表示赞赏。
类似于:
UPDATE GENERATION
SET FILE_NAME (?)
WHERE FILE_NAME (?...LIKE '%STRING%');?
最佳答案
您可以像这样找到问题行:
select *
from Files
where length(FILE_NAME) - length(replace(FILE_NAME, '_', '')) > 1
您可以像这样修复它们:
update Files
set FILE_NAME = SUBSTR(FILE_NAME, 1, instr(FILE_NAME, '_') -1) ||
SUBSTR(FILE_NAME, instr(FILE_NAME, '_', 1, 2))
where length(FILE_NAME) - length(replace(FILE_NAME, '_', '')) > 1
关于oracle - 从表数据值中间删除 varchar2 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13160563/