一个产品如果迭代周期比较长,再加上如果各个项目上的版本不同,就会出现各种脚本,管理的如果很细就不会出现脚本问题,如果管理不当就会浪费一些时间去看脚本问题。下面列举几个常见脚本数据,批量执行的例子。
1.存在的表添加一个字段:
BEGIN
-- 实体表升级脚本
DECLARE
V_TEMP NUMBER;
V_SYS_ERROR NUMBER;
PRIMARYKEYEXISTEDCOUNT NUMBER;
BEGIN
SELECT COUNT(1) INTO V_TEMP FROM USER_TAB_COLUMNS WHERE TABLE_NAME=UPPER('表名') AND COLUMN_NAME=UPPER('字段名');
IF V_TEMP<=0 THEN
--若不存在该字段则添加
BEGIN
EXECUTE IMMEDIATE 'ALTER TABLE 表名 ADD 字段名 NUMBER(16)';
EXCEPTION
WHEN OTHERS THEN
V_SYS_ERROR := SQLCODE;
END;
END IF;
-- 判断
IF V_SYS_ERROR = 0 THEN
BEGIN
COMMIT;
END;
ELSE
BEGIN
ROLLBACK;
END;
END IF;
END;
END;
/
COMMENT ON COLUMN 表名.字段名 IS '注释';
/
上面的sql就会去判断是否存在,可以重复执行不会报错。
2.借助第三方工具导出初始化数据:
利用Toad这个工具(具体下载安装百度一下)
默认链接,sql改成plsql.
写好查询的sql语句。
按照这个配置然后点击ok就会粘贴到对应文本文档上面生成MERGE语句。这样就可以多次执行。
注意:不过如果删除的话就要提供对应删除脚本这个只会新增和更新