Я новичок в этой группе. Я пытался думать о том, чтобы иметь курсор с выражением выбора условия. Некоторые, как, как этот псевдо code--Oracle Cursor with conditional Оператор Select
[B]cursor test_cursor is
if condition == 't11'
then
select * from test1;
else
select * from test1;
end if;[/B]
begin
for cursorVal in test_cursor loop
//Doing the actual task on cursor data.
end loop;
commit;
end;
На самом деле, я наткнулся со сценарием, где нужно работать на двух разных таблиц с одинаковым DDL. Основываясь на некотором пользовательском вводе, необходимо извлечь данные из любой таблицы и далее манипулировать процедурой. Как я сказал, обе таблицы имеют один и тот же DDL , поэтому не хотите создавать два разных курсора. Причина для этой же бизнес-логики будет применяться к обеим табличным данным. Его просто пользовательский ввод, который решает, какая таблица должна извлекать данные. Некоторые из них могут думать об этом как о последних данных и исторических данных, так и о том, как создается БД.
Надеюсь, что я понятен в своем сценарии.
Thanks, Arfeen.
Итак, в чем ваш вопрос? –
Используйте динамический SQL. См. Http://docs.oracle.com/cd/E11882_01/appdev.112/e25519/dynamic.htm#LNPLS011 – Rachcha
Использование курсора ref может решить вашу проблему, на основе пользовательских входов вы можете открыть этот курсор для нужной таблицы. – San