Я столкнулся с проблемой здесь.У меня есть таблица Products
, где есть столбцы с именами prod_trkg_tran_id
и cntr_nbr
и т. Д. У меня также есть две таблицы instance1
и instance2
, которые также содержат prod_trkg_tran_id
и cntr_nbr
, и они имеют одну строку данныхкаждый с тем же cntr_nbr
.Я запустил запрос, как показано ниже в Oracle SQLDeveloper.Он работал нормально и удалил строку из prod_trkg_tran
.Можете ли вы объяснить это ??
Но когда я попробовал это в SP, назначив:
p_where_clause:= 'WHERE t.prod_trkg_tran_id in (
select distinct tp82.PROD_TRKG_TAN_ID
from instance_1 tp21
join instance_2 tp82 on tp21.cntr_nbr=tp82.cntr_nbr
)'
и вызвал метод delete_table
, оператор которого содержит
'DELETE FROM ' || p_table_name ||' t ' || p_where_clause;
p_table_name
- это prod_trkg_tran
, а p_where_clause
- это то, что я определил ранее.
Если я запускаю это, записи SP не удаляются из prod_trkg_tran
.
В идеале это должно было быть удалено, как я пытался в SQLDeveloper.Вы можете это объяснить?
delete from prod_trkg_tran t
WHERE t.prod_trkg_tran_id in (
select distinct tp82.PROD_TRKG_TRAN_ID
from instance_1 tp21
join instance_2 tp82 on tp21.cntr_nbr=tp82.cntr_nbr
);