【问题标题】:How to change schema name?如何更改架构名称?
【发布时间】:2013-09-14 20:49:03
【问题描述】:

我创建了一个用户:

CREATE USER gds_map
IDENTIFIED BY gds_map;

现在我需要更改名称。我试图更新或寻找其他方式,但还没有找到任何东西。

我会很高兴任何提示。

【问题讨论】:

    标签: oracle plsql schema oracle11gr2


    【解决方案1】:

    你不能(至少不能以一种受支持或模糊负责的方式)。您需要使用新用户名创建一个新用户并删除旧用户。

    【讨论】:

      【解决方案2】:

      不存在重命名 oracle 架构的方法。

      试试,

      1-创建新架构

      2-导出旧架构,

      $exp owner=test2
      

      3-将旧架构导入新架构,

      $imp fromuser=test2 touser=newuser_name
      

      【讨论】:

        【解决方案3】:

        这样做

        1- 以系统登录

        2- 执行这个: 更新 sys.user$ 设置名称='新名称' 其中名称 = 'old_name';

        3-然后重启数据库

        【讨论】:

        • 您可能还想查看默认表空间,因此您不会开始混合对象
        【解决方案4】:

        我经常需要这样做,以至于我什至写了一篇关于这个主题的文章

        我使用的解决方法是使用环回 dblink 将用户“克隆”到具有不同名称的同一个数据库。

        速度非常快,最后,在成功检查后,您可以删除旧架构。

        在这里查看:http://www.dbarj.com.br/en/2014/11/rename-schema-oracle-11g-loopback-dblink/

        问候,

        罗德里戈·豪尔赫

        【讨论】:

          【解决方案5】:

          在 oracle 数据库中,您不能重命名您的用户名,但您可以更改您的密码。

          alter user USER_NAME identified by <enter_new_password>;
          

          【讨论】:

            【解决方案6】:

            如果你想修改一个模式的名字,你应该在 USER$ 上有前缀

            1.获取架构名称的 ID

            SQL> select user#,NAME from SYS.user$ WHERE NAME='TEST';
            USER# NAME
            ---------- ------------------------------
            *93* TEST
            

            2。修改架构的名称

            SQL> UPDATE USER$ SET NAME='NEW_SCHEMA_NAME' WHERE USER#=93;
            

            3.完成提交

            SQL> COMMIT;
            

            4.修改系统SCN

            SQL> ALTER SYSTEM CHECKPOINT;
            

            5.然后刷新shared_pool

            SQL> ALTER SYSTEM FLUSH SHARED_POOL;
            

            6.修改新架构的密码

            SQL> ALTER USER new_schema  IDENTIFIED BY new_pass;
            

            【讨论】:

            • 感谢你,它拯救了我的一天,并且像任何东西一样工作......谢谢。
            • 此方法将为 oracle 11c 更新对象(函数、游标、过程和 lob 等)中的模式名称。这是用对象重命名架构的最佳方法吗?
            • 我不推荐在 12.1 上使用这种方法。数据库将模式的旧名称存储在其他地方,除了 USER$。 1) dba_context.schema 中的值仍然是旧的。 2) 重命名模式中的包和 SQL 类型不会被编译。我收到如下错误:ORA-00600:内部错误代码,参数:[kotaty805]、[DATA_KOEF_TAB_REC]、[]、[]、[]、[]、[]、[]、[]、[]、[]、 [] 只有 DROP/CREATE 有帮助。
            猜你喜欢
            • 1970-01-01
            • 2014-05-11
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2010-09-09
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多