客制开发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,画面闪退。

posted @ 2022-11-10 17:18  三生有幸格格  阅读(98)  评论(0编辑  收藏  举报