如何更改架构名称?

ade*_*lak 9 oracle schema plsql oracle11gr2

我创建了一个用户:

CREATE USER gds_map
IDENTIFIED BY gds_map;
Run Code Online (Sandbox Code Playgroud)

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

我会很高兴有任何暗示.

moh*_*ane 15

如果要修改模式的名称,则应在USER $上设置preveledegs

1.获取模式名称的ID

SQL> select user#,NAME from SYS.user$ WHERE NAME='TEST';
USER# NAME
---------- ------------------------------
*93* TEST
Run Code Online (Sandbox Code Playgroud)

2.修改架构的名称

SQL> UPDATE USER$ SET NAME='NEW_SCHEMA_NAME' WHERE USER#=93;
Run Code Online (Sandbox Code Playgroud)

完成提交

SQL> COMMIT;
Run Code Online (Sandbox Code Playgroud)

4.修改系统SCN

SQL> ALTER SYSTEM CHECKPOINT;
Run Code Online (Sandbox Code Playgroud)

5.然后刷新shared_pool

SQL> ALTER SYSTEM FLUSH SHARED_POOL;
Run Code Online (Sandbox Code Playgroud)

6.修改新架构的密码

SQL> ALTER USER new_schema  IDENTIFIED BY new_pass;
Run Code Online (Sandbox Code Playgroud)

  • 我不推荐在 12.1 上使用这种方法。数据库将模式的旧名称存储在其他地方,除了 USER$。1) dba_context.schema 中的值仍然是旧的。2) 不编译重命名模式中的包和 SQL 类型。我收到如下错误:ORA-00600:内部错误代码,参数:[kotaty805], [DATA_KOEF_TAB_REC], [], [], [], [], [], [], [], [], [], [] 只有 DROP/CREATE 有帮助。 (4认同)

Jus*_*ave 10

你不能(至少不是以支持或模糊的方式).您需要使用新用户名创建新用户并删除旧用户.


Dba*_*Dba 6

不存在重命名 oracle 模式的方法。

尝试,

1-创建新模式

2-导出旧架构,

$exp owner=test2
Run Code Online (Sandbox Code Playgroud)

3-将旧模式导入新模式,

$imp fromuser=test2 touser=newuser_name
Run Code Online (Sandbox Code Playgroud)