Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在不指定数据库名称的情况下连接到Oracle server_C#_Database_Oracle_Tns - Fatal编程技术网

C# 如何在不指定数据库名称的情况下连接到Oracle server

C# 如何在不指定数据库名称的情况下连接到Oracle server,c#,database,oracle,tns,C#,Database,Oracle,Tns,我的应用程序有一个功能,可以连接到4个不同的数据库服务器(MS SQL、MySql、SQLite和Oracle),如果不存在数据库,它将使用指定的数据库名称创建一个新的数据库。此逻辑适用于除Oracle之外的所有服务器。如果数据库存在,我可以在所有四台服务器上连接到它,因此我认为问题与我的tns、错误的dll或诸如此类的东西无关,但在这种情况下,我的connectionstring可能是错误的 Oracle server版本是11.0.0.1,我安装了必要的odac驱动程序。我的电脑上设置了tn

我的应用程序有一个功能,可以连接到4个不同的数据库服务器(MS SQL、MySql、SQLite和Oracle),如果不存在数据库,它将使用指定的数据库名称创建一个新的数据库。此逻辑适用于除Oracle之外的所有服务器。如果数据库存在,我可以在所有四台服务器上连接到它,因此我认为问题与我的tns、错误的dll或诸如此类的东西无关,但在这种情况下,我的connectionstring可能是错误的

Oracle server版本是11.0.0.1,我安装了必要的odac驱动程序。我的电脑上设置了tns,当数据库存在时,一切都正常工作。在本例中,connectionstring如下所示:

User Id=<myuser>; Password=<mypassword>; POOLING=true; Connection Lifetime=15;
Connection Timeout=15; incr pool size=10; Data Source=
(
DESCRIPTION=
(ADDRESS=
 (PROTOCOL=TCP)
 (HOST=<myserveraddress>)
 (PORT=<myport>)
)
(
 CONNECT_DATA=
 (SID=<mysid>)
 (SERVICE_NAME=<mydatabasename>)
)
);
userid=;密码=;池=真;连接寿命=15;
连接超时=15;增量池大小=10;数据源=
(
描述=
(地址=
(协议=TCP)
(主机=)
(端口=)
)
(
连接数据=
(SID=)
(服务名称=)
)
);
现在,如果我从connectionstring中删除servicename部分,就会出现“ORA-12505:TNS:listener当前不知道连接描述符中给出的SID”异常


如果我只想连接到服务器,而不想直接连接到数据库,该怎么办?

oracle数据库创建的概念与其他数据库不同

请点击以下链接

并选择选项“2天DBA”


创建数据库的最佳方法是使用oracle提供的图形界面,即从dbca.bat开始。您误解了这里的情况

在Oracle中,您不创建数据库,而是创建用户/表空间

甲骨文:

服务器>实例(数据库)>表空间

其他:


服务器>实例>数据库

是否要检查给定的
服务名称
是否已启动并正在运行?如果不是数据库,您到底想连接到什么?我想从connectionstring中删除servicename,就像连接到MSSQL服务器时一样。因此,我想连接到服务器,但不想连接到数据库。想象一个没有任何数据库的全新服务器。您将在servicename变量中指定什么?:)我认为这里有一个术语问题。没有数据库实例,Oracle中就没有可连接的对象。当您安装Oracle服务器时,您没有数据库。我的程序想连接到服务器,然后创建一个新的数据库。创建新数据库时,我可以使用上面的connectionstring连接到它。我可以在其他3个数据库中完成,但不能使用Oracle。