如何更改架构名称?

Posted

技术标签:

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

我创建了一个用户:

CREATE USER gds_map
IDENTIFIED BY gds_map;

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

我会很高兴任何提示。

【问题讨论】:

【参考方案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 有帮助。

以上是关于如何更改架构名称?的主要内容,如果未能解决你的问题,请参考以下文章

如何更改 DataFrame 的架构(修复一些嵌套字段的名称)?

如何在 JPA 中动态更改 Schema 的名称

powershell 使用SDL Web核心服务更改嵌入式架构字段的根元素名称

powershell 使用SDL Web核心服务更改嵌入式架构字段的根元素名称

如何更改电脑名称和管理员账号名称?

如何更改应用名称并保留当前用户?