Итак, у меня есть таблица «Таблица1», в которой есть столбец File_Name, среди прочих. Я должен написать процедуру, которая проверяет, имеет ли каждое имя_файла свою пару с тем же именем. Единственное различие заключается в sufix file_name. Каждое имя_файла имеет .gz sufix, и его пара имеет .fin sufix, а имя - то же самое.процедура сопряжения файлов в plsql
Я полностью новичок в процедурах и plsql в целом, поэтому я очень благодарен за помощь. Я не знаю, нахожусь ли я на правильном пути. Это то, что у меня есть сейчас, и у него есть ошибки, конечно;
CREATE OR REPLACE
PROCEDURE DWHAPND_FILE_PAIRING_CHECK(P_LOAD_TIME IN DATE,
P_BATCH_NO IN NUMBER,
P_STATUS OUT VARCHAR2,
P_MSG OUT VARCHAR2) IS
CURSOR file_gz IS
SELECT RTRIM(FILE_NAME, '.gz')
FROM TABLE1
WHERE INSTR(FILE_NAME, '.gz', -1, 1)
AND BATCH_NO = P_BATCH_NO
AND LOAD_TIME = P_LOAD_TIME;
L_STATUS VARCHAR2(10);
L_MSG VARCHAR2(4000);
BEGIN
IF(
SELECT RTRIM(FILE_NAME, '.fin') as file_fin
FROM TABLE1
WHERE INSTR(FILE_NAME, '.fin', -1, 1)
AND BATCH_NO = P_BATCH_NO
AND LOAD_TIME = P_LOAD_TIME) IN file_gz;
THEN L_STATUS := 'OK';
L_MSG := 'All files are paired';
ELSE L_MSG := 'NOT OK';
L_MSG := 'Following files are not paired: ' || FILE_NAME IN file_gz;
END IF;
END DWHAPND_FILE_PAIRING_CHECK;
Узнав те же имена файлов, что вы хотите с ними сделать? – GurV
Ничего, это всего лишь процедура проверки, каждый файл должен иметь свою пару, иначе мы остановим ETL. – noiq23