Oracle11g oracle数据库在没有tns条目的情况下连接

Oracle11g oracle数据库在没有tns条目的情况下连接,oracle11g,Oracle11g,我是oracle数据库的新手。 我在我的机器上安装了Oraclexe11g。我从oracle默认数据库XE中创建了一个单独的测试数据库[SID:testDB],引用了这个数据库。我创建了以下内容: 使用以下命令创建了windows服务-OracleServicetestDB: oradim-new-sid testDB-startmode auto-pfile initTestDB.ora 创建数据库 执行的sql脚本 SQL>@?\rdbms\admin\catalog.SQL SQL>@?\

我是oracle数据库的新手。 我在我的机器上安装了Oraclexe11g。我从oracle默认数据库XE中创建了一个单独的测试数据库[SID:testDB],引用了这个数据库。我创建了以下内容:

使用以下命令创建了windows服务-OracleServicetestDB: oradim-new-sid testDB-startmode auto-pfile initTestDB.ora 创建数据库 执行的sql脚本 SQL>@?\rdbms\admin\catalog.SQL SQL>@?\rdbms\admin\catproc.SQL 创建用户 在为这个新数据库创建了user/schema之后,我能够从sqldeveloper和网络上的其他机器上的java/jdbc程序连接它

我很惊讶我没有在tnsnames.ora中为此数据库创建任何TNS侦听器或TNS条目,但我仍然能够本地和远程连接此数据库。 我期待以下问题的答案:

在没有tns条目的情况下如何连接我的testDB? 如果testDB依赖于XE服务/侦听器,我如何配置OracleServicetestDB以与XE服务分离? 列表项 java/jdbc代码:

导入java.sql.Connection; 导入java.sql.DriverManager; 公共类第一示例{ //JDBC驱动程序名称和数据库URL 静态最终字符串JDBC_DRIVER=oracle.JDBC.DRIVER.OracleDriver; 静态最终字符串DB_URL=jdbc:oracle:thin:@localhost:1521:testDB; //数据库凭据 静态最终字符串USER=testDBUser; 静态最终字符串传递=密码; 公共静态无效字符串[]args{ 连接conn=null; 试一试{ //步骤2:注册JDBC驱动程序 Class.forNameJDBC_驱动程序; //步骤3:打开连接 System.out.PrintLn连接到数据库。。。; conn=DriverManager.getConnectionDB_URL,用户,密码; 系统。输出。打印连接。; 康涅狄格州关闭; }捕获异常e{ e、 打印跟踪; } }
} tnsnames.ora用于openers应用程序/工具,具体取决于使用的驱动程序和somtimes连接设置;Java驱动程序可以在没有tnsnames的情况下处理大多数情况,请参阅并注意,tnsnames别名只是几个选项之一


侦听器在ORAHOME/network/admin/Listener.ora中配置,默认值通常不需要任何更改。在Windows上,侦听器作为服务运行Windows服务,不要与Oracle服务名称混淆!并自动启动。在Unix和Windows上,即使有多个数据库实例/SID,您也有一个侦听器。

感谢dave的回复,但是。。我也通过SQLDeveloper连接,这是一个工具,我还没有为我的db实例创建任何tns条目。通常,在这种情况下,我们会得到以下错误错误错误:ORA-12505,TNS:listener当前不知道SID