使用升级工具升级过程中遇到的问题
1、 “ORA-00947:没有足够的值”
问题分析:经查看后台报错日志得知,在进行thisentrusthgmortagage表数据插入时,thisentrusthgmortagage表相对于原表TENTRUSTHGMORTAGAGE缺少两个字段(l_bondlending_amount,l_deal_bondlending_amount)。
解决办法:为新表添加新列解决问题。
sql:alter table thisentrusthgmortagage add
(l_bondlending_amount NUMBER(16,2) default 0.0,
l_deal_bondlending_amount NUMBER(16,2) default 0.0);
commit;
2、“ORA-02296: 无法启用 (TRADE.) - 找到空值”
问题分析:经排查后台日志及脚本发现TZHONGJSCLIENTCAPITALDETAIL中VC_TRADE_MEMBER置为了not null,但是脚本在修改THISZHONGJSCLIENTCAPITALDETAIL表中字段置为not null时,提示出现错误。尝试手工将THISZHONGJSCLIENTCAPITALDETAIL表字段置为not null,也无法成功。
解决办法:通过pl/sql工具查询出表相关数据,将该非空字段数据更新内容,然后再将字段更新为非空属性,注意修改完成之后都要commit;
sql:
select * from THISZHONGJSCLIENTCAPITALDETAIL for update;
update THISZHONGJSCLIENTCAPITALDETAIL set vc_trade_member= 1; commit;
alter table THISZHONGJSCLIENTCAPITALDETAIL modify (vc_trade_member not null);
3、“ORA-20001: call procedure error[-1031,ORA-01031: 权限不足]”,“ORA-06512: 在 “TRADE.O4_SYNC_CREATETABLEMID”, line 94”
问题分析:trade用户没有建表权限
解决办法:在oracle数据库中为trade赋予建表权限:grant create any table to trade;
4、as_fund.xml启动服务报错,通过修改hstrade.ini文件中的数据库连接字符串,并使用集成工具重置下密码解决
5、“ORA-01408: 此列列表已索引”
问题分析:①索引已存在的话可以先删除再重新建立:sql:drop index “IDX_TENTRUSTS_CANCELSERIAL”;但是使用新的索引名来删除操作时提示指定索引不存在,说明存在的索引名与即将新建的索引名并不相同。
②手工重新建立索引sql: create index IDX_TENTRUSTS_CANCELSERIAL on TENTRUSTS (L_CANCEL_SERIAL_NO);提示此列表已索引,说明索引只是占用其中固定列。
解决办法:查询占用该列的索引并删除
sql:
查询索引:select * from user_ind_columns where table_name = ‘TENTRUSTS’ and column_name = ‘L_CANCEL_SERIAL_NO’;
删除索引:drop index “IDX_TENTRUSTS_CANCELNO”;
6、“ORA-00904: “C_TYPE”: 标识符无效”
问题分析:出现标识符无效大体有两个原因:①字段或者表明写错了,修正即可②字段包含了oracle的关键字,关键字可以使用双引号括起来。经过核实报错日志和脚本,发现正在操作的TLCR表中缺少C_TYPE字段。
解决办法:手工添加该字段
sql:alter table TLCR add (c_type CHAR(1));
commit;