关于插入表中的数据不一致问题

dhytfzz 2010-11-18 04:54:09
写了一个比较庞大的查询语句,然后我把查询的语句插入到一个新建的表中,但是在插入表中的数据后,问题出现了,我查询出来的是48条记录,但是插入到表中只有31条数据,其中部分数据插入后发生错误,检查SQL语句,没有问题,查询依旧是48条,但是插入后仍是31条,请问这是怎么回事!
...全文
191 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
心中的彩虹 2010-11-19
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 dhytfzz 的回复:]
谢谢大家,问题以解决
[/Quote]
什么问题 说来看看 分享下
dhytfzz 2010-11-19
  • 打赏
  • 举报
回复
谢谢大家,问题以解决
dhytfzz 2010-11-18
  • 打赏
  • 举报
回复
我都做了一天测试了,还是有问题
YY_MM_DD 2010-11-18
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 dhytfzz 的回复:]

引用 16 楼 wkc168 的回复:
引用 15 楼 dhytfzz 的回复:
insert into TBL_Trans_inter_data_ict
select 2 as datatype,'' as vouchid,'' as vouno ,lrzxbm as profit,ywfbbm as bustype,
'' as sap3,'' as TR_FenPei,'' as ……
[/Quote]

你这样的问题求人还不如求自己,只有在相应的数据环境下才能定位出来
dhytfzz 2010-11-18
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 wkc168 的回复:]
引用 15 楼 dhytfzz 的回复:
insert into TBL_Trans_inter_data_ict
select 2 as datatype,'' as vouchid,'' as vouno ,lrzxbm as profit,ywfbbm as bustype,
'' as sap3,'' as TR_FenPei,'' as TR_ShortText,'' as TR_……
[/Quote]数据类型肯定是没有问题的,我已经做过了,还是插入31条,我都快郁闷死了
心中的彩虹 2010-11-18
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 dhytfzz 的回复:]
insert into TBL_Trans_inter_data_ict
select 2 as datatype,'' as vouchid,'' as vouno ,lrzxbm as profit,ywfbbm as bustype,
'' as sap3,'' as TR_FenPei,'' as TR_ShortText,'' as TR_LongText, case when ……
[/Quote]
给个思路

把后面插入的记录的select语句的48条记录跟 已经插入到目标表的31条记录做个差集 minus
看差集的记录与你的插入表的数据类型 以及长度进行比较 看看
dhytfzz 2010-11-18
  • 打赏
  • 举报
回复
insert into TBL_Trans_inter_data_ict
select 2 as datatype,'' as vouchid,'' as vouno ,lrzxbm as profit,ywfbbm as bustype,
'' as sap3,'' as TR_FenPei,'' as TR_ShortText,'' as TR_LongText, case when balanorient=1 then '1' else '0' end as Direct,
'0' as SAPFJZ,null as VouDate,''
as IsReturned ,null as BookDate ,ksbm as SupCode,corp.unitcode as Entity,'' expensesAcc,code as AcctCode,
currtypecode as TR_CUR,'' as TR_AMT,
'' as TR_LAMT, amount_yb as TR_UnOffAMT,amount_bb as TR_LUnOffAMT,
'' as TR_RATE,null as AgingDate,'' as OffGroup,null as OffDate,'' as IsDelete,'' as isInvalid,'' as IsOffed, '' as VouUser,'NC' as FinType,'' as UpdateTime,'' as IntraTransaction,'' as BusMakeMan
from (select substr(b.subjcode, 1, 6) as code,
tz.valuecode as ksbm,
tz.valuename as ksmc,
sum(debitamount) - sum(creditamount)
as amount_yb,
sum(localdebitamount) - sum(localcreditamount)
as amount_bb,
tz1.valuecode as ywfbbm,
tz1.valuename as ywfbmc,
tz2.valuecode as lrzxbm,
tz2.valuename as lrzxmc,
b.balanorient,
curr.currtypecode,
a.pk_corp
from (SELECT debitamount, creditamount, localdebitamount, localcreditamount, assid, pk_accsubj,pk_currtype,pk_corp
from gl_balance
where period = '00'
and year ='2010'
and nvl(dr, 0) = 0
and pk_corp ='1014'
and pk_glorgbook='0001V5100000000006A7'
union all
select
b.debitamount,
b.creditamount,
b.localdebitamount,
b.localcreditamount,
b.assid,
pk_accsubj,
b.pk_currtype,a.pk_corp
from gl_voucher a, GL_DETAIL b
where a.PK_VOUCHER = b.PK_VOUCHER
and nvl(a.dr, 0) = 0
and nvl(b.dr, 0) = 0
and a.period > '00'
and a.pk_corp = b.pk_corp
and a.pk_corp ='1014'
and a.year = '2010'

and a.period <= '11'
and a.pk_glorgbook='0001V5100000000006A7'
and a.PREPAREDDATE <= '2010-11-05'
and (a.errmessage is null and (a.discardflag <> 'Y') or
a.errmessage is not null or (a.discardflag = 'Y'))
and a.pk_manager = 'N/A' and a.voucherkind <> 2
and a.voucherkind <> 255) a,
bd_accsubj b,
bd_currtype curr,
(SELECT valuecode,
valuename,
freevalueid,
checktype,
checkvalue
FROM gl_freevalue
WHERE checktype = '00010000000000000073'
and nvl(dr, 0) = 0) tz,
(SELECT valuecode,
valuename,
freevalueid,
checktype,
checkvalue
FROM gl_freevalue
WHERE checktype = '0001V510000000000XWS'
and nvl(dr, 0) = 0) tz1,

(SELECT valuecode,
valuename,
freevalueid,
checktype,
checkvalue
FROM gl_freevalue
WHERE checktype = '0001V510000000000Y8E'
and nvl(dr, 0) = 0) tz2
where tz.freevalueid = a.assid
and tz1.freevalueid = a.assid
and tz2.freevalueid = a.assid
and b.pk_accsubj = a.pk_accsubj
and substr(b.subjcode, 1, 4) in ('1131', '2121', '1151','2131')
and curr.pk_currtype=a.pk_currtype
group by tz1.valuecode,
tz1.valuename,
tz.valuecode,
tz2.valuename,
tz2.valuecode,
tz.valuename,
b.balanorient,
curr.currtypecode,
substr(b.subjcode, 1, 6),
a.pk_corp) m,bd_corp corp
where m.amount_bb <> 0 and corp.pk_corp=m.pk_corp and substr(m.ksbm,1,4)='9999'

dhytfzz 2010-11-18
  • 打赏
  • 举报
回复
create table TBL_TRANS_INTER_DATA_ICT
(
DATATYPE INTEGER,
VOUCHID VARCHAR2(20),
VOUNO VARCHAR2(20),
PROFIT VARCHAR2(50),
BUSTYPE VARCHAR2(10),
SAP3 VARCHAR2(50),
TR_FENPEI VARCHAR2(50),
TR_SHORTTEXT VARCHAR2(50),
TR_LONGTEXT VARCHAR2(50),
DIRECT VARCHAR2(1),
SAPFJZ VARCHAR2(1),
VOUDATE DATE,
ISRETURNED VARCHAR2(1),
BOOKDATE DATE,
SUPCODE VARCHAR2(50),
ENTITY VARCHAR2(50),
EXPENSESACC VARCHAR2(50),
ACCTCODE VARCHAR2(50),
TR_CUR VARCHAR2(50),
TR_AMT NUMBER(20,2),
TR_LAMT NUMBER(20,2),
TR_UNOFFAMT NUMBER(20,2),
TR_LUNOFFAMT NUMBER(20,2),
TR_RATE NUMBER(20,6),
AGINGDATE DATE,
OFFGROUP VARCHAR2(50),
OFFDATE DATE,
ISDELETE VARCHAR2(1),
ISINVALID VARCHAR2(1),
ISOFFED VARCHAR2(1),
VOUUSER VARCHAR2(50),
FINTYPE VARCHAR2(3),
UPDATETIME DATE,
INTRATRANSACTION VARCHAR2(50),
BUSMAKEMAN VARCHAR2(20)
)
dhytfzz 2010-11-18
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 wkc168 的回复:]
引用 11 楼 dhytfzz 的回复:
引用 9 楼 wkc168 的回复:
引用 7 楼 dhytfzz 的回复:
大家在说说自己的看法啊,真的很无奈

把你的表结构 以及目标数据贴出来 以及操作步骤 让我们猜
我的表建的时候没有主键,没有约束,更没有索引

其中部分数据插入后发生错误 提示什么错误
[/Quote]没有错误,都编译通过了
心中的彩虹 2010-11-18
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 dhytfzz 的回复:]
引用 9 楼 wkc168 的回复:
引用 7 楼 dhytfzz 的回复:
大家在说说自己的看法啊,真的很无奈

把你的表结构 以及目标数据贴出来 以及操作步骤 让我们猜
我的表建的时候没有主键,没有约束,更没有索引
[/Quote]
其中部分数据插入后发生错误 提示什么错误
dhytfzz 2010-11-18
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 wkc168 的回复:]
引用 7 楼 dhytfzz 的回复:
大家在说说自己的看法啊,真的很无奈

把你的表结构 以及目标数据贴出来 以及操作步骤 让我们猜
[/Quote]我的表建的时候没有主键,没有约束,更没有索引
dhytfzz 2010-11-18
  • 打赏
  • 举报
回复
我的表建的时候没有主键,没有约束,更没有索引
心中的彩虹 2010-11-18
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 dhytfzz 的回复:]
大家在说说自己的看法啊,真的很无奈
[/Quote]
把你的表结构 以及目标数据贴出来 以及操作步骤 让我们猜
心中的彩虹 2010-11-18
  • 打赏
  • 举报
回复
[Quote=引用楼主 dhytfzz 的回复:]
写了一个比较庞大的查询语句,然后我把查询的语句插入到一个新建的表中,但是在插入表中的数据后,问题出现了,我查询出来的是48条记录,但是插入到表中只有31条数据,其中部分数据插入后发生错误,检查SQL语句,没有问题,查询依旧是48条,但是插入后仍是31条,请问这是怎么回事!
[/Quote]新表约束问题看了没
dhytfzz 2010-11-18
  • 打赏
  • 举报
回复
大家在说说自己的看法啊,真的很无奈
dhytfzz 2010-11-18
  • 打赏
  • 举报
回复
怎么会呢,我都是写好的查询语句往表里插,又没有执行其它操作,确实很灵异,希望大家能多帮帮我解决下问题
gelyon 2010-11-18
  • 打赏
  • 举报
回复
感觉比较灵异,是不是你其他session给delete掉了部分?
dhytfzz 2010-11-18
  • 打赏
  • 举报
回复
我的查询语句是多表查询,查询出来的语句都没有问题,我写的是存储过程
insert into TBL_Trans_inter_data_ict
这个后面加的是查询语句,比较庞大,就不写了

然后执行后,插入表中的数据条数和单查询的条数不对
YY_MM_DD 2010-11-18
  • 打赏
  • 举报
回复
把你的操作步骤说下看。。
dhytfzz 2010-11-18
  • 打赏
  • 举报
回复
没有,我的数据都是不重复的,就是很奇怪
加载更多回复(1)

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧