首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle -选择要连接的数据库

Oracle -选择要连接的数据库
EN

Stack Overflow用户
提问于 2021-01-24 02:55:55
回答 2查看 73关注 0票数 0

全,

在MS SQL server和Sybase中,用户可以使用use <db_name>选择服务器上的当前数据库。

据我所知,Oracle11只能有1个DB。

但是如果我有最新的Oracle -有没有办法选择当前的数据库?

蒂娅!!

我目前使用的是带有ODBC的11g。完成此测试后,我将把Oracle更新到最新版本。

EN

回答 2

Stack Overflow用户

发布于 2021-01-24 06:27:35

在SQL Server中,“数据库”与“模式”同义:表、视图等对象的集合。在Oracle中,“数据库”与“服务器”或“实例”同义--一组正在运行的进程及其支持的数据文件(独立、CDB或PDB)。在Oracle中,拥有对象(表等)的“用户”。与"schema“同义,因此Oracle”用户“在概念上与SQL Server”数据库“相同。无论是使用OCI、ODBC还是JDBC客户机连接到Oracle时,都必须始终选择一个实例(使用SID或服务名)和一个用户/方案。

回答您关于确定Oracle中的当前模式的问题:当连接到oracle数据库实例时,current_schema会话参数确定当您没有完全限定对象名时,默认情况下oracle将把您的查询定向到哪个模式。可以使用以下命令进行设置:

代码语言:javascript
复制
alter session set current_schema=[username];

现有的会话参数值可以通过查询sys_context函数找到:

代码语言:javascript
复制
select sys_context( 'userenv', 'current_schema' ) from dual;
select sys_context( 'userenv', 'session_user' ) from dual;

有关sys_context的更多信息,请查看此处:https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/SYS_CONTEXT.html#GUID-B9934A5D-D97B-4E51-B01B-80C76A5BD086

有关Oracle schema和SQL Server数据库如何比较的更多信息,请参阅dba.stackexchange.com和stackoverflow.com之前关于该主题的帖子:

票数 1
EN

Stack Overflow用户

发布于 2021-01-24 06:50:50

甲骨文有另一套术语。现在我说的是11g。DBMS是数据库+实例。实例是一组进程和内存结构,它是你正在运行的程序。当您启动Oracle DBMS时,您将启动实例、实例挂载数据库并打开数据库。如果您有RAC,则一个数据库可以有多个实例。这意味着,您有一个服务器与数据库,两个或更多的服务器与实例和RAC将同步您的内存结构,事务等实例之间。因此,在Oracle11g中,服务器上没有“当前数据库”。在不同的服务器上有一个数据库和一个或多个实例(如果您有RAC)。当您连接到Oracle时,即连接到一个实例。

在Oracle11中,MS SQL Server中的“数据库”的分离是由“模式”完成的。模式通常是用户,而数据库对象-表等属于模式==用户。当您连接到Oracle时,您提供了一个用户名-它将是您的默认模式,您将在其中保存您的数据库对象。可以使用"alter session“更改您工作的模式。

从Oracle12开始就有了“可插拔的数据库”--PDB。这意味着您有一个CDB容器数据库作为根,您可以将多个PDB插入到一个CDB。这或多或少相当于MS SQL Server的“数据库”。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65863196

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档