zoukankan      html  css  js  c++  java
  • Oracle学习 第20天 PL/SQL导入

    我就知道导入也有很多坑。。。

    DROP USER XXX CASCADE; --删除用户
    
    CREATE USER XXX IDENTIFIED BY XXX --创建用户
    
    GRANT DBA TO XXX; --赋DBA权限
    
    GRANT EXECUTE ON EMULATION.UTILS to XXX; --从SqlServer迁移的触发器有用到Emulation的Utils同义词,如果不单独赋权限的话会报错

    1、加上CASCADE,删除用户时会同时删除相应数据

    2、原以为用system用户去导就可以自动成生用户和表空间了,像SqlServer那样【恢复备份】一样,原来是不行的。。。要先建用户,再恢复表结构/存储过程/序列/触发器等(即导入用户数据),再导入表数据。

    3、建完用户后,想仍然用system账号来导入结构和数据,结果那些导出的SQL脚本,建表之类是有加上用户前缀,即有完整的XXX.TableName,可用管理员账号导。但触发器脚本是直接使用TableName的,那就需要直接使用XXX用户的账号来导。

    4、新建的XXX权限不足,需要赋权限。建表、建存储过程、建触发器。。。一个个添加,加一个试一个,总是权限不够,无奈直接赋DBA省事。

    5、导完后发现触发器编译不通过,都是提示UTILS不存在。查了后发现EMULATION账号下有一个UTILS,会自动在XXX下生成一个同义词。都DBA了怎么还没权限,只好手动再专门赋一下权限。

    错误:PLS-00201: 必须声明标识符 'UTILS'
    行:21
    文本:utils.identity_value := v_newVal;
    -- save this to emulate @@identity
      utils.identity_value := v_newVal;

    应该是专门用来模拟自增列的。

    6、从头再来一次,终于全部成功了,也够折腾的。SqlServer在SSMS里,用sa,随便恢复bak文件,多方便。

  • 相关阅读:
    借阅的列表
    列表中的方法
    对编程本质的认识
    列表技能
    链表策略
    在pycharm里添加解释器路径
    数据类型转化
    罗列内存中的数字
    【python3的学习之路十】模块
    【python3的学习之路九】函数式编程
  • 原文地址:https://www.cnblogs.com/liuyouying/p/6368953.html
Copyright © 2011-2022 走看看