SAP-ABAP-SE14丢失的数据如何恢复
在做项目时有时需要对标准表做增强,增加字段,但是如果增加的字段太长了想要改小,这时sap中SE11是不能直接激活的,需要SE14调整表才能改小,但是使用SE14风险太大了,稍微不注意就会导致被调整的表数据丢失。
以VBAP表为例,SE14调整表的逻辑是把数据先复制到临时表QCMVBAP,然后将VBAP整个干掉,然后把新的表结构给VBAP,然后把临时表数据给新的VBAP
所以千万注意注意,一定不要看着调整很久没有反应就自己强行断掉程序,这时基本都是在复制数据,你如果强行断掉了程序,那数据可不就是没有了嘛,如果运气好的话可能临时表QCMVBAP还有数据,那还有机会恢复
恢复代码如下,网上有个恢复MARC表的程序,但是在数据量大的情况下基本都会出现资源瓶颈,这里对那段代码做了优化,防止资源瓶颈
*&---------------------------------------------------------------------*
*& Report ZWEBAPI_TEST
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT zwebapi_test NO STANDARD PAGE HEADING .TABLES vbap .DATA : itab TYPE TABLE OF vbap WITH HEADER LINE .START-OF-SELECTION .DATA: LV_VBELN TYPE VBAP-VBELN ,LV_POSNR TYPE VBAP-POSNR.LV_VBELN = '9999999999'.LV_POSNR = '9999'.DATA: LV_FLAG(1).
CLEAR: LV_FLAG.WHILE LV_FLAG <> 'X'.EXEC SQL PERFORMING APPENDITAB .SELECT TOP 100000 * INTO :ITAB FROM QCMVBAP WHERE VBELN < :LV_VBELN OR (VBELN = :LV_VBELN AND POSNR < :LV_POSNR) ORDER BY VBELN DESC , POSNR DESCENDEXEC .DESCRIBE TABLE ITAB LINES DATA(LV_LINES).IF LV_LINES < 100000.LV_FLAG = 'X'.ENDIF.READ TABLE ITAB INTO DATA(LS_ITAB) INDEX LV_LINES.LV_VBELN = LS_ITAB-VBELN.LV_POSNR = LS_ITAB-POSNR.CLEAR: LS_ITAB.INSERT VBAP CLIENT SPECIFIED FROM TABLE ITAB .COMMIT WORK.REFRESH ITAB.WRITE SY-DBCNT .ENDWHILE.FORM APPENDITAB .APPEND ITAB TO ITAB .ENDFORM ." DATA: BEGIN OF wa," VBELN TYPE VBAP-VBELN," POSNR TYPE VBAP-POSNR," END OF wa."" EXEC SQL." SELECT VBELN, POSNR" INTO :wa" FROM QCMVBAP" WHERE mandt = '500' AND" VBELN = '1000000016'" ENDEXEC."" IF wa IS NOT INITIAL."" ENDIF.
如果临时表还有数据,运行上面的代码就能找回数据了,这个代码是数据库层面的,是跨client的,但是不跨环境。
数据量大的情况下可能出现time out 的情况,运行程序建议跑后台job。
如果是别的表,代码不适应,大家可以根据逻辑自己做修改。
总之,以后再SE14调整前大家都悠着点把,要我看,改小还不如新增个新字段,干脆就弃用原来的字段就好了。
最后 ,补充一个特别特别重要的问题,在改短字段前,一定要注意表里面的数据没有超长了,保证改短后的字段能存下所有数据,或者事先删除或修改数据,不然调整时必定报错,爆出超长的错,但是表又做不了调整了,数据也删不掉了,最后数据必定丢失,别问我为什么这么清楚,说出来都是泪
SAP-ABAP-SE14丢失的数据如何恢复相关推荐
- 电脑给山寨内存卡清理垃圾丢失了数据怎么恢复
电脑给山寨内存卡清理垃圾丢失了数据怎么恢复 提到数码相机,我们就不得不提到他的亲密伙伴--存储卡!!如今的数码相机或者手机等设备的价格都逐渐走低,越来越多的人都将数码相机和手机作为个人生活中的标准装备 ...
- 智能手机丢失了数据怎么恢复
智能手机丢失了数据怎么恢复 以前提到娱乐设备,大家都会想到电脑,电视,MP4等,现在大多数人都会选择智能手机,智能手机具有上述设备的大部分功能,同时还可以进行拍照.社交.一台智能手机就可以满足人们日常 ...
- 计算机死机后重启什么丢失,电脑死机后丢失的数据怎么恢复?
在日常使用电脑过程中,有些用户喜欢把很多程序一一打开,不使用的程序也不及时关闭.这样由于运行的程序越来越多出现突然卡死的情况,不管你点击鼠标还是键盘,都没有任何反应,***后大多数人都选择重启电脑. ...
- 分区丢失了数据怎么恢复
平常用电脑都非常的爱惜,电脑都没出现过大的问题.不过我有一个很大的缺点,就是记性不好.我非常喜欢玩游戏,尤其是网络游戏, 所以,我有很多的账号,密码,我在电脑上建了一个记事本,里面保存了我的一些账号和 ...
- 磁盘显示未分配怎么办?丢失的数据这样恢复
磁盘未分配指的是未分配的这部分磁盘空间上没有任何分区,也就是说部分空间无法用来保存数据. 我们可以在电脑上打开磁盘管理器查看硬盘及分区情况,以下方图片为例,硬盘共有3个分区,分别是C盘.EFI分区和O ...
- SAP ABAP maintanence view的数据校验机制
Subject: RE: Validate data in maintanence view SM30的Maintenance View是通过SE11里面的工具生成的,所有的显示和增删改查的逻辑都是自 ...
- 电子设备丢失数据如何恢复
随着电脑,移动硬盘.手机等设备不断普及,我们对于数据丢失也就不再陌生.那么我们生活中常见的数据恢复问题,应该怎么解决呢.我们常说,知己知彼百战不殆,所以我们先来了解一下常见的数据恢复问题. 在我们日常 ...
- 如何使用Do Your Data Recovery恢复系统升级时丢失的数据
大家是不是经常在系统更新之后,发现自己的数据没有备份?没关系,这里小编向大家介绍如何恢复这些数据.Do Your Data Recovery是一款Mac系统常见的恢复工具.这款软件能够提供完整的mac ...
- SAP ABAP FOR ALL ENTRIES 的用法
FOR ALL ENTRIES 子句是 ABAP OPEN SQL 语句中常用的功能.带有 FOR ALL ENTRIES 子句的 OPEN SQL 语句代表一种同时包含数据库表和 ABAP 内表的 ...
最新文章
- ubuntu 修改时区、时间、同步网络时间、将时间写入硬件
- android的shadowRadius属性说明
- mysql关于日期的函数_MySQL中关于日期函数汇总
- [LeetCode] #44 Wildcard Matching
- CentOS6.5+mysql5.1源码安装过程
- mysql查询优化not in,mysql not in如何优化
- 史上最污技术解读,60 个 IT 术语我竟然秒懂了......
- 3D打印设计软件 FreeCAD 入门
- iOS 注册极光推送
- 针孔微创牙龈手术(Pinhole Gum Rejuvenation)
- dos下masm的out of memory 怎么解决,求大佬指教
- 推荐好友和共同好友sql
- 查看windows系统默认编码 修改windows系统默认编码
- linux中execvp函数,Linux shell的实现——execvp
- ACM算法模板总结(分类详细版)
- JTAG 标准IEEE STD 1149.1-2013学习笔记(三)Test data registers
- stm32cubeide烧写程序_STM32CubeIDE使用入门的几个常见问题
- android模拟器有什么作用,为什么要用安卓模拟器?安卓模拟器是什么?
- 如何将光盘上的CDA文件拷贝到电脑硬盘上
- 逆向工程发现苹果 M1 未公开的秘密:矩阵协处理器