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文件,多方便。

  • 相关阅读:
    try {}里有一个 return 语句,那么紧跟在这个 try 后的 finally {}里的 code 会不会被执行,什么时候被执行,在 return 前还是后?
    BigDecimal 使用 静态方法总结
    成员内部类里面为什么不能有静态成员和方法?
    浅谈多态机制的意义及实现
    Java接口中的成员变量的意义
    IDEA 打包和导入 Jar 包
    Java static关键字
    Java this关键字
    Java 匿名对象
    Java JOptionPane 对话框
  • 原文地址:https://www.cnblogs.com/liuyouying/p/6368953.html
Copyright © 2011-2022 走看看