【泛微ecology】达梦数据库备份恢复完成后要进行一次存储过程,触发器,视图对象编译
调用参数不兼容或者不匹配
·
由于当前使用DM8版本存在主备库里同一条查询语句耗时不同,达梦技术反馈需要升级版本,说是升级,其实就是重新一套DM数据库环境(不知道是技术不行,还是只能这样解决),经过5个小时的导出导入,终于还原完毕,开启应用,结果报错
修改一堆参数,最后没什么卵用;最后失败告终,切回原环境,不影响第二天使用,(搞达梦数据库迁移,最好不要动原环境,如果有问题,哭到找不到地方);
第二天用测试环境应用接入新的达梦数据库,复现问题,最后定位达梦bug
原因:达梦数据库的存储过程恢复后有的时候不生效
执行如下的SQL脚本中的2个SQL语句:
----SQL1: 编译数据库存储过程,触发器,视图对象。请在ecology使用的的用户下执行。
declare
sql_v varchar(8000);
ex_sql varchar(4000);
begin
for i in
(
select 'alter procedure '||OBJECT_NAME as object_new from USER_PROCEDURES
union all
select 'alter trigger '||TRIGGER_NAME from USER_TRIGGERS
union all
select 'alter view '||VIEW_NAME from USER_VIEWS
)
loop
BEGIN
sql_v:=i.object_new||' compile;';
-- print(sql_v);
execute immediate sql_v;
EXCEPTION
WHEN OTHERS THEN
ex_sql:='insert into ex_table value('||i.object_new||',''00'',''00'');';
print ex_sql;
end;
end loop;
end;
----SQL2: 更新整个数据库的统计信息
CALL SP_DB_STAT_INIT();
更多推荐
已为社区贡献2条内容
所有评论(0)