媒介
在 Oracle 数据库中,常常需要在多个数据库或多个模式(schema)之间进行切换。不同于 MySQL 或 SQL Server 等数据库体系,Oracle 不支持直接使用 USE 命令切换数据库,因为 Oracle 通常使用 多租户架构(CDB 和 PDB)来管理多个数据库实例。本文将介绍在 Oracle 中怎样切换 数据库模式 和 数据库实例。
1、切换 Schema(模式)
在 Oracle 中,数据库的结构被分别为多个模式(schema),每个模式可以包含不同的数据库对象,如表、视图、存储过程等。通常,切换 schema 就是切换当前会话所访问的默认模式。
- ALTER SESSION SET CURRENT_SCHEMA = schema_name;
复制代码 此命令会将当前会话的默认模式设置为指定的 schema_name。这意味着你不需要使用模式名前缀来访问该模式下的对象。
- 示例
假设你当前毗连的是用户 HR,但你想操作 SCOTT 模式下的表,可以执行以下命令:
- ALTER SESSION SET CURRENT_SCHEMA = SCOTT;
复制代码 执行完该命令后,你可以直接访问 SCOTT 模式下的对象,而不需要写出 SCOTT. 前缀。
注意事项
- ALTER SESSION SET CURRENT_SCHEMA 仅影响当前会话,其他会话不受影响。
- 假如你需要更改数据库用户的权限,必须使用管理员权限进行操作。
2. 切换到不同的 Pluggable Database(PDB)
- 在 Oracle 12c 及以上版本中,接纳了 多租户架构(CDB 和 PDB)。在这种架构下,容器数据库(CDB)包含多个 可插拔数据库(PDB)。你可以在不同的 PDB 之间切换。
检察当前的 PDB 列表
- 要检察所有的 PDB(可插拔数据库),可以执行以下查询:
此命令会列出当前容器数据库中所有的 PDB,包括它们的状态和名称。
- 切换到指定的 PDB
切换 PDB 需要使用 ALTER SESSION 命令。假设你已经毗连到容器数据库(CDB),而且想切换到某个 PDB,可以执行以下命令:
- ALTER SESSION SET CONTAINER = pdb_name;
复制代码
- 例如,假如你想切换到名为 pdb1 的 PDB,可以执行以下命令:
- ALTER SESSION SET CONTAINER = pdb1;
复制代码 注意事项
- 切换 PDB 需要具有充足的权限,通常需要以管理员身份登录。
- 切换到一个新的 PDB 后,你的会话将访问该 PDB 下的所有对象。
3. 毗连到不同的数据库实例
假如你需要毗连到不同的 Oracle 数据库实例,可以通过重新登录来实现。这通常在跨数据库执行查询时使用。
毗连命令
- sqlplus username/password@hostname:port/service_name
复制代码
- 其中:
- username 是你的 Oracle 用户名。
- password 是对应的密码。
- hostname 是数据库主机的地址。
- port 是数据库的端标语(默认是 1521)。
- service_name 是你要毗连的服务名。
示例
- 假设你要毗连到位于 192.168.1.100 的 Oracle 实例,端标语为 1521,服务名为 orcl,可以执行以下命令:
- sqlplus hr/hr_password@192.168.1.100:1521/orcl
复制代码 执行该命令后,你会毗连到指定的数据库实例。
总结
在 Oracle 中,你不能像 MySQL 或 SQL Server 那样直接使用 USE 命令切换数据库,而是使用以下方式进行切换:
1.切换 Schema(模式):使用 ALTER SESSION SET CURRENT_SCHEMA = schema_name;
命令切换当前会话的默认模式。
2. 切换 PDB(可插拔数据库):在多租户架构中,使用 ALTER SESSION SET CONTAINER = pdb_name;
命令切换到不同的可插拔数据库。
3. 毗连到不同的数据库实例:通过重新登录并指定目标数据库实例的毗连信息。
总结
假如此篇文章有资助到您, 希望打大佬们能关注、点赞、收藏、评论支持一波,非常感谢大家!
假如有不对的地方请指正!!!
参考1
参考2
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |