我的应用程序具有连接到4个不同数据库服务器(MS SQL,MySql,SQLite和Oracle)的功能,如果不存在数据库,它将创建一个具有指定数据库名称的新数据库。此逻辑适用于所有服务器,Oracle除外。如果数据库存在,我可以在所有四个服务器上连接它,所以我认为问题与我的tns,或者错误的dll或类似的东西无关,但在这种情况下我的connectionstring可能是错误的。
Oracle服务器版本是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>)
)
);
现在,如果我从连接字符串中删除了servicename部分,我得到一个“ORA-12505:TNS:监听器当前不知道连接描述符中给出的SID”异常。
当我只想连接服务器而不是直接连接到数据库时,我该怎么办?
答案 0 :(得分:0)
oracle数据库创建的概念与其他数据库不同。
请点击以下链接
http://docs.oracle.com/cd/E16655_01/index.htm
并选择选项“2 Day DBA”
创建数据库的最佳方法是使用oracle提供的图形界面,即以dbca.bat开头
答案 1 :(得分:0)
你误解了这里发生了什么。
在Oracle中,您不会在您的情况下创建数据库,而是创建用户/表空间。
甲骨文:
服务器&gt;实例(数据库)&gt;表
其他:
服务器&gt;实例&gt;数据库