Я пытаюсь написать динамический запрос, который может иметь различное количество параметров другого типа.Единственная проблема, с которой я сталкиваюсь, - это обработка, если значение является строкой, поэтому вокруг него нужны одинарные кавычки.Я использую значение поля с именем key_ref_, чтобы определить, как будет выглядеть мое предложение where.Вот некоторые примеры:
LINE_NO=1^ORDER_NO=P6002277^RECEIPT_NO=1^RELEASE_NO=1^
PART_NO=221091^PART_REV=R02^
На данный момент я заменяю '^' на 'и' вот так:
REPLACE( key_ref_, '^' ,' and ' );
Затем я пытаюсь создать динамический запрос, напримерthis:
EXECUTE IMMEDIATE
'select '||column_name_||' into column_ from '||base_table_||' where '||
key_ref_ || 'rownum = 1';
Это не будет работать в случаях, когда значение не является числом.
Также я добавил «rownum = 1» только для обработки дополнительных «и» вконец вместо удаления последнего вхождения.