0

有没有办法使用 Oracle SQL 从以下文件名序列中列出丢失的文件名?

文件名存储在 table1 中。有两种类型的文件名 type1 和 type2。文件名不一定以正确的序列号顺序存储。对于每种文件类型,应该有十个文件(序列编号为 001-010)。

文件名采用以下格式:

文件类型.type1.seq.001.dat

文件类型.type1.seq.004.dat

文件类型.type2.seq.001.dat

文件类型.type1.seq.006.dat

文件类型.type2.seq.006.dat

文件类型.type1.seq.007.dat

文件类型.type1.seq.010.dat

文件类型.type2.seq.004.dat

文件类型.type1.seq.002.dat

文件类型.type1.seq.003.dat

文件类型.type2.seq.005.dat

文件类型.type2.seq.008.dat

文件类型.type2.seq.009.dat

文件类型.type2.seq.010.dat

此序列中丢失的文件将是:

文件类型.type1.seq.005.dat, 文件类型.type1.seq.008.dat, 文件类型.type1.seq.009.dat 文件类型.type2.seq.002.dat, 文件类型.type2.seq.003.dat, 文件类型.type2.seq.007.dat

谢谢。

4

2 回答 2

2

您可以在运行时生成文件名,例如:

select 'filetype.type' || typeno || '.seq.' || to_char(seqno,'fm000') || '.dat'
       as filename
from (select rownum as typeno from dual connect by level <= 2)
    ,(select rownum as seqno from dual connect by level <= 10)
minus
select filename from table1;
于 2012-08-30T02:16:06.463 回答
0
select filename
from ref_table
MINUS
select distinct filename
from table1;

ref_table 将包含所有可能文件名的列表。

于 2012-08-29T19:41:51.087 回答