Я пытаюсь вставить данные в один из моих таблиц.Не удается вставить пустую строку в таблицу oracle
insert into t_transaction_query_log
(log_id,
posting_id,
fee_id,
fee_status,
fee_type,
pay_mode,
accounting_date,
policy_id,
money_id,
finish_time,
source_type,
fee_amount,
cr_seg,
dr_seg,
product_id' || v_insert_str_cr_seg ||
v_insert_str_dr_seg || ')
select s_transaction_query_log__lg_id.nextval,
tg.je_posting_id,
tg.fee_id,
tg.fee_status,
tg.fee_type,
60,
tg.accounting_date,
tg.policy_id,
tg.currency_id,
trunc(sysdate,
''dd''),
2,
tg.fee_amount,' ||v_str_cr_seg
|| ',' || v_str_dr_seg || ',
tg.product_id' || v_insert_str_cr_seg ||
v_insert_str_dr_seg || '
from t_ri_fee_gl tg
where tg.posted = ''Y''
я объявил v_str_cr_seg, v_str_dr_seg, как пустые строки т.е. v_str_dr_seg VARCHAR (50) = '';
перед выполнением этого запроса я могу добавить некоторые значения этих двух строк , но в случае, если нет никаких изменений в этих строках из декларации я получаю вычисляемый запрос как
insert into t_transaction_query_log
(log_id,
posting_id,
fee_id,
fee_status,
fee_type,
pay_mode,
accounting_date,
policy_id,
money_id,
finish_time,
source_type,
fee_amount,
cr_seg,
dr_seg,
product_id)
select s_transaction_query_log__lg_id.nextval,
tg.je_posting_id,
tg.fee_id,
tg.fee_status,
tg.fee_type,
60,
tg.accounting_date,
tg.policy_id,
tg.currency_id,
trunc(sysdate,
'dd'),
2,
tg.fee_amount, , ,
tg.product_id
from t_ri_fee_gl tg
where tg.posted = 'Y'
, который в повернуть результаты в отсутствие ошибки выражения. я попытался с помощью NVL функцию
nvl(v_str_cr_seg, '') and `nvl(v_str_cr_seg, null)`
, но до сих пор я получаю ту же ошибку
как я могу вставить даже если v_str_cr_seg и v_str_dr_seg являются неизменными т.е. пустые строки ''
Да, я сочиняю эту строку для использования с немедленным выполнением –
Тогда это должно сработать. Вы должны убедиться, что у вас нет ',,,', но ''', '', '''. Вы также можете иметь «null, null, null». Возможно, вы подготовили 'v_str_cr_seg' и т. Д. Перед этим утверждением. – hol