如何更改架构名称?
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 的架构(修复一些嵌套字段的名称)?
powershell 使用SDL Web核心服务更改嵌入式架构字段的根元素名称