Предположим, у меня есть таблица conf
с первичным ключом PK
:
Conf
------------------
PK A B C
------------------
1 Y Y Y
2 Y Y
3 Y
------------------
У меня есть другая таблица temp:
Temp
------------------
PK A B C
------------------
1 ab cd ef
1 null cd ef
2 cd pq
3 dn
------------------
Мне нужно извлечь все имена столбцов и PK из таблицы conf
, имеющие значение Y
, например:
1 A B C
2 A C
3 A
Эти значения необходимо сравнить со temp
строками таблицы и проверить, является ли значение извлеченного столбца пустым внутри этого столбца, и если это так, выдать ошибку.
Например, для 2 A C
нам нужно сравнить столбцы A и C временной таблицы, имеющие 2
как PK
.
У меня вопрос, как мне получить указанную ниже запись в курсоре:
1 A B C
2 A C
3 A
Я не получаю оптимизированное решение для этого. Это можно сделать, сравнив все столбцы таблицы conf
с таблицей temp
, но их может быть больше 15.
Схема алгоритма:
fetch all column name from conf table having value 'Y'
loop
fetch all the columns from temp table with primary key from outer cursor
loop
On the basis of column name from outer cursor check the value of column
of temp table for its nullability
end loop;
end loop;