insert into SYS_LOAD_COUNT (DATADT, TABLE_NAME, TABLE_COUNT,IMP_TABLE_COUNT, DATE_FLAG, END_TIME, MAIN_FLAG, TABLE_DESC)
select '20150104', 'ACCGEN_INFO', '0', '0', 'BYDATE', '', '1', '综合信息' from dual where not exists
(select 1 from sys_load_count where datadt='20150104' and table_name='ACCGEN_INFO')
很奇怪的现象,这个语句在pl sql里面执行成功把数据写入到表里面,程序几年没修改过,用Hibernate执行,之前都能成功,但到前两天开始,数据写不到表里面去了,跟踪了一下代码,代码没报错,把 not exists 后面的去掉能把数据写进去,加上 not exists 死活写不进去,SYS_LOAD_COUNT 表里面没有存在 datadt='20150104' and table_name='ACCGEN_INFO' 的数据的, 太奇葩了,求解。
------解决思路----------------------
这个是因为你的事务中含有对表sys_load_count其他插入操作吧,楼主可以调试跟进检查下代码试试。
------解决思路----------------------
单独执行一下select 语句看看结果,就知道了
SELECT '20150104',
'ACCGEN_INFO',
'0',
'0',
'BYDATE',
'',
'1',
'综合信息'
FROM dual
WHERE NOT EXISTS (SELECT 1
FROM sys_load_count
WHERE datadt = '20150104'
AND table_name = 'ACCGEN_INFO')
------解决思路----------------------
加上 not exists 死活写不进去 ?? 这个如何理解,你写进去也是0 行数据啊。