确认表存不存在,检查语句是否正确。
DDL会改变表结构,所以就很有可能导致存储过程之类的objects失效,所以操作前后要查看失效对象。如果有失效的要重新编译。
DDL会导致OGG源端与目标端表结构不一致,报错。需要在两端都做此操作。先查看有无DDL同步参数,有的话就不用在两边都做了。
生产的xshsale都同步到报表的united/united用户下。
update会产生锁,需要选择非业务高峰期。并且控制事物的数量。
dml先问应用是否是实时交易,因为会锁表,所以实时交易的表要晚上再修改。
1.加字段之前,查询是否有失效对象
##dba用户查询##
set line 300
SELECT status, object_id, object_type, owner||'.'||object_name "OWNER.OBJECT"
FROM dba_objects
WHERE status != 'VALID' AND object_name NOT LIKE 'BIN$%'
ORDER BY 4,2;
##当前用户查询##
set line 300
SELECT status, object_id, object_type, object_name
FROM user_objects
WHERE status != 'VALID' AND object_name NOT LIKE 'BIN$%'
ORDER BY 4,2;
2.加字段之后再次查询是否有失效对象,有的话重新编译
##dba用户查询##
set line 300
SELECT status, object_id, object_type, owner||'.'||object_name "OWNER.OBJECT"
FROM dba_objects
WHERE status != 'VALID' AND object_name NOT LIKE 'BIN$%'
ORDER BY 4,2;
##当前用户查询##
set line 300
SELECT status, object_id, object_type, object_name
FROM user_objects
WHERE status != 'VALID' AND object_name NOT LIKE 'BIN$%'
ORDER BY 4,2;
少量直接alter,注意包体需加body
ALTER PACKAGE my_package COMPILE;
ALTER PACKAGE my_package COMPILE BODY;
ALTER PROCEDURE my_procedure COMPILE;
ALTER FUNCTION my_function COMPILE;
ALTER TRIGGER my_trigger COMPILE;
ALTER VIEW my_view COMPILE;
大量使用脚本编译
@?/rdbms/admin/utlrp.sql
3.字段相关操作
增加一个列
alter table 表名 add (字段名 数据类型); 括号可加可不加
增加多个列
alter table 表名 add (字段名1 数据类型,字段名2 数据类型,……);
删除一列
alter table 表名 drop column 字段名;
删除多列
alter table 表名 drop column (字段名1,字段名2,……);
重新定义某列
alter table 表名 modify 字段名 数据类型;
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




