客制开发tiptop程序随记-pta表结构问题-误删表的恢复
添加字段的语法:alter table tablename add (column datatype [default value][null/not null],….);
删除字段的语法:alter table tablename drop (column);
修改字段的语法:alter table tablename modify (column datatype [default value][null/not null],….);
添加、修改、删除多列的话,用逗号隔开。
1.多运营中心新增字段:
ALTER 汇入资料时sch文件内解释性的字符会引起提示成功,但未执行。
格式如下:alter table pja_file add(ta_pja215 varchar2(1)) ;
已有字段的类型不可变更,若操作删除其中某个字段,重新建立该字段会造成此账套的表结构与ds库表结构不一致,造成此表所关联的所有程序都出错。
正确方法是继续按编码原则新增字段后ALTER汇入资料选择写好的ALTER更新sch文件到服务器,选择要更新到的账套,批量更新。
若不小心误删其中的字段:
1.参照ds库字段顺序备份此表的所有数据(备份非常重要)
2.ds库内生成sch此表的参照数据库文件。
3.问题账套内操作p_ta"删除TABLE",一定要确定此表已完全备份,一旦删除此表内所有资料将丢失。
4.使用p_ta“汇入CREATE的SQL档”选择到ds库所生成的此表名的参照sch文件,若系统提示表名命名不合法该操作将失败。需要使用plsq将ds库此表创建的完整sql捞出来,在问题账套内更改账套标识后执行SQL.
5.将备份资料确认栏位一致后插入到刚创建的空表内。
6.在pta中需要点击“zta资料建立”,输入“2"点击确定提示“p_zta表资料产生完毕”,再测试程序没问题。
前面谈到一旦未备份资料就误操作删除此表,在此表块还未被使用也就是刚操作后还未进行大量的操作,Oracle数据库可以查看“回收站”内有无此文件,若有可尝试恢复。
如何恢复不小心 Drop 掉的表呢,其实 Oracle 中也有类似的 "回收站"
比如不小心删除了表 My_Table
drop table My_Table;
这个时候再用SELECT语句查询此表时,将会提示表或视图不存在.
但可以用如下语句查询到这个表还在Oracle回收站中:
SELECT * FROM user_recyclebin WHERE original_name='My_Table';-----注意表名必须大写状态
那么现在就可以用如下语句进行恢复:
FLASHBACK TABLE My_Table TO BEFORE DROP;
表内记录误删的恢复
select * from My_Table as of timestamp to_timestamp('2022/11/17 10:59:00','yyyy/mm/dd HH24:mi:ss')
2.4gl资料清单数组新增栏位
资料清单list_info新增字段时,需要在全局变量g_pja_l和list_info()函数组成sql中增加此新字段,顺序不可错位,特别注意新增的画面档上要与此顺序一致。否则可能造成
错误代码STATUS = -1109,画面闪退。
本文来自博客园,作者: 三生有幸格格,转载请注明原文链接:https://www.cnblogs.com/mylive/p/16877762.html