1. 理解Oracle中的用户与模式关系
在Oracle数据库体系中,用户(User)和模式(Schema)是密不可分的两个概念。每个数据库用户都自动拥有一个同名的模式,这个模式就是该用户创建数据库对象的逻辑容器。当我们使用连接字符串中的User ID=C##RY_NET连接数据库时,实际上就是在告诉Oracle:"我要使用C##RY_NET这个用户对应的模式"。
这种设计与其他数据库系统有所不同。例如在SQL Server中,用户和模式是分离的概念,一个用户可以访问多个模式。而在Oracle中,这种一对一的绑定关系使得模式管理更加直接,但也带来了一些使用上的特殊考量。
注意:Oracle 12c开始引入的多租户架构(CDB/PDB)中,用户命名有了新的规范。以C##开头的用户是公共用户(Common User),可以在所有PDB中使用,这也是示例中C##RY_NET这种命名的由来。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 连接字符串中的模式指定方式
2.1 基础连接字符串配置
在.NET应用中连接Oracle数据库时,最基本的连接字符串格式如下:
csharp复制"Data Source=10.80.189.43:1521/orcl;User ID=C##RY_NET;Password=12345678;"
这个连接字符串明确指定了三个关键要素:
- Data Source - 数据库服务器地址和实例名
- User ID - 要连接的用户名(同时也是默认模式名)
- Password - 对应用户的密码
当应用使用这个连接建立会话后,所有未明确指定模式名的SQL操作都会默认在C##RY_NET模式下进行。例如执行CREATE TABLE TEST_TABLE(...)就会在C##RY_NET模式下创建表。
2.2 使用ALTER SESSION切换模式
如果需要在连接后切换到其他模式,可以在打开连接后执行ALTER SESSION命令:
csharp复制using (var conn = new OracleConnection(connectionString))
{
conn.Open();
using (var cmd = conn.CreateCommand())
{
