2012-08-29 2 views
0

Есть ли способ перечисления недостающих имен файлов из следующей последовательности имен файлов с использованием Oracle SQL?Oracle SQL-запрос для списка недостающих имен файлов из последовательности имен файлов

Имена файлов хранятся в таблице 1. Существует два типа имен файлов type1 и type2. Имена файлов не обязательно сохраняются в правильном порядке порядкового номера. Для каждого типа файла должно быть десять файлов (последовательность с номером 001-010).

Имена файлов находятся в следующем формате:

filetype.type1.seq.001.dat

filetype.type1.seq.004.dat

filetype.type2.seq.001. Дат

filetype.type1.seq.006.dat

filetype.type2.seq.006.dat

filetype.type1.seq.007.dat

filetype.type1.seq.010.dat

filetype.type2.seq.004.dat

filetype.type1.seq.002.dat

filetype.type1.seq.003.dat

filetype.type2.seq.005.dat

filetype.type2.seq.008.dat

filetype.type2.seq.009.dat

filetype.type2.seq.010.dat

отсутствующие файлы из этой последовательности будет:

filetype.type1.seq.005. dat, filetype.type1.seq.008.dat, filetype.type1.seq.009.dat filetype.type2.seq.002.dat, filetype.type2.seq.003.dat, filetype.type2.seq.007. dat

Спасибо.

ответ

0
select filename 
from ref_table 
MINUS 
select distinct filename 
from table1; 

ref_table будет содержать список всех возможных имен файлов.

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; 
+0

Джеффри - ваш ответ работает большое спасибо. Теперь, если список файлов был получен ежедневно, а порядковый номер всегда увеличивался, есть ли способ перечислять недостающие файлы каждый день? – user1634146

+1

Чтобы упростить задачу, я добавил бы значение даты в имя файла «YYYYMMDD», так что вам нужно будет протестировать файлы последних двух дней, а число SEQ будет максимальным в «99999», новый формат имени файла будет выглядеть как «filetype». type1.seq.00005.20120830.dat 'еще раз спасибо. – user1634146

+0

Вам нужно знать заранее, сколько файлов ожидается каждый день. В противном случае вам нужно будет проверить все возможные значения последовательности. Идея добавления datestamp является хорошей. Еще лучше, чтобы дата сохранялась как другой столбец в таблице. –

Смежные вопросы