【发布时间】:2014-12-08 13:17:40
【问题描述】:
我是 Oracle 数据库的新手。 我在我的机器上安装了 OracleXE 11g。我从 oracle 默认数据库(XE)中创建了一个单独的测试数据库[SID:testDB],引用了这个video。我创建了以下内容:
- 使用以下 cmd 创建 Windows 服务 - OracleServicetestDB: oradim -new -sid testDB -startmode auto -pfile initTestDB.ora
- 已创建数据库
- 执行的 sql 脚本 SQL> @?\rdbms\admin\catalog.sql SQL> @?\rdbms\admin\catproc.sql
- 已创建用户
在为这个新数据库创建用户/模式后,我可以从网络上的其他机器上的 sql developer 和 java/jdbc 程序连接它。
令我惊讶的是,我没有在 tnsnames.ora 中为此数据库创建任何 TNS 侦听器或 TNS 条目,但我仍然能够在本地和远程连接此数据库。 我期待以下问题的答案:
- 如何在没有 tns 条目的情况下连接我的 testDB?
- 如果 testDB 依赖于 XE 服务/侦听器,我如何配置 OracleServicetestDB 以与 XE 服务分离?
- 列表项
java/jdbc 代码:
import java.sql.Connection;
import java.sql.DriverManager;
public class FirstExample {
// JDBC driver name and database URL
static final String JDBC_DRIVER = "oracle.jdbc.driver.OracleDriver";
static final String DB_URL = "jdbc:oracle:thin:@localhost:1521:testDB";
// Database credentials
static final String USER = "testDBUser";
static final String PASS = "password";
public static void main(String[] args) {
Connection conn = null;
try {
// STEP 2: Register JDBC driver
Class.forName(JDBC_DRIVER);
// STEP 3: Open a connection
System.out.println("Connecting to database...");
conn = DriverManager.getConnection(DB_URL, USER, PASS);
System.out.println("Connected.");
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
【问题讨论】:
标签: oracle11g