在 Oracle JDeveloper 中使用纯 TNSNAMES 而不是基于主机的数据库连接

2024-03-26

我正在使用 Oracle JDeveloper 11.1.1.4.0,并且我可以创建数据库连接(类型为Oracle (JDBC)) 使用thin只要我指定主机,驱动程序就没有任何问题。

例如,我可以通过指定以下方式连接到本地运行的 Oracle XE 数据库:

Driver: thin
Host Name: localhost
JDBC Port: 1521
Service Name: XE

为了连接到远程数据库,我使用 TNS,我的tnsnames.ora文件设置如下,其中MYDATABASE.EXAMPLE.COM是我想要使用的 Oracle 服务标识符。

MYDATABASE.EXAMPLE.COM=
  (DESCRIPTION=
    (ADDRESS=
      (PROTOCOL=TCP)
      (HOST=testdb.example.com)
      (PORT=1234)
    )
    (CONNECT_DATA=
      (SERVICE_NAME=MYDATABASE.example.com)
    )
  )

连接到MYDATABASE.EXAMPLE.COM服务可以在本机上与 SQL Developer、SQL Plus、TNSPING 等一起使用,但我找不到在 JDeveloper 数据库连接中指定此服务而不强制指定主机的方法。

我不想指定主机的原因与我们首先使用 TNS 的原因相同 -testdb.example.com主机会随着时间的推移而改变,但MYDATABASE.EXAMPLE.COMTNS 服务标识符不会。

如果我指定主机testdb.example.com加上正确的 TNS 别名,连接就可以正常工作。如果我指定wrong标识符,它失败了 - 它肯定知道我的 tnsnames.ora 文件的内容。

类似的帖子this one http://java.sogeti.nl/JavaBlog/2008/02/03/oracle-thin-jdbc-to-tns-name/似乎建议如果 JDeveloper 知道 TNS_ADMIN,它将使用tnsnames.ora,但即使使用“输入自定义 JDBC URL”也不起作用,使用如下字符串:

jdbc:oracle:thin:MYDATABASE.EXAMPLE.COM

它仍然给出“请输入主机名的有效值”错误。

有谁知道如何在 JDeveloper 中创建数据库连接而不指定主机?


根据 Oracle JDBC 开发人员指南,您需要通过 (JVM) 系统属性指定 tnsnames.ora 文件的位置,以便能够将 tnsnames 与瘦驱动程序一起使用:

http://download.oracle.com/docs/cd/B28359_01/java.111/b31224/urls.htm#BEIDIJCE http://download.oracle.com/docs/cd/B28359_01/java.111/b31224/urls.htm#BEIDIJCE

您需要以系统属性的方式启动 SQL Developeroracle.net.tns_admin被定义为。

Adding

AddVMOption -Doracle.net.tns_admin=/path/to/tnsnames.ora

到 ide.conf 应该可以解决问题(尽管我还没有尝试过)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Oracle JDeveloper 中使用纯 TNSNAMES 而不是基于主机的数据库连接 的相关文章

  • 小数点分隔符 oracle

    我需要用点替换逗号 然后我需要我的值是一个数字 所以我写了这个 select replace 12345 6789 from dual it works fine 但后来我想转换to number该值 我收到错误 invalid numbe
  • oracle中的数字格式

    Hai 我的数字格式有问题 我正在使用 oracle 我在数据库中有一个数字字段 但是当我检索它时 我需要将其视为浮点数 例如 在检索时 现在我得到的结果为 200 DR 借方的 DR 手动给出 现在我需要得到 200 00 DR 的结果
  • 没有 if 条件(动态查询)或乱码的Where子句中的PreparedStatement“为null”

    假设我有这样的查询 SELECT FROM CUSTOMERS WHERE CUSTOMER ID 使用PreparedStatement 我可以绑定变量 pstmt setString 1 custID 但是 我无法通过以下绑定获得正确的
  • 如何启用 Genymotion 模拟器使用主机正在使用的 WIFI 互联网

    我在 Genymotion 模拟器上运行的应用程序需要互联网 互联网似乎无法在 Genymotion 模拟器上运行 我试图通过打开浏览器来确认这一点 这就是我得到的 我在我的笔记本电脑上运行 Windows 7 并使用 Wifi 互联网 我
  • Oracle 数据库,SQL 更新语句将不起作用 (OLEDB)

    我设置了一个数字主键和一个存储卡车 FINS 的字母数字字段 它只是数字和字母的随机组合 我不生成鳍片 这些鳍片将始终与卡车车队识别号相同 这是代码视图 storeTruckSplit truckSplit 1 Stores truck F
  • Java - oracle.jdbc.dcn.DatabaseChangeEvent - 获取更改的行

    我正在使用 oracle jdbc dcn DatabaseChangeEvent 来从 Oracle DB 获取事件通知 public class TListener implements DatabaseChangeListener p
  • 在查询中使用别名导致“命令未正确结束”

    我试过这个 SELECT FROM SELECT ROW NUMBER OVER ORDER BY vernum DESC defvern DESC AS RowNumber FROM MyTable INNER JOIN AnotherT
  • 从 SQL 表在 SQL 中创建数据透视视图

    我有下表TEMP 我想使用 SQL 创建一个数据透视视图 排序依据CATEGORYASC 通过LEVEL降序和SETASC 并填写value 预期输出 我已尝试以下代码 但无法解决引发错误的聚合部分 SELECT FROM SELECT S
  • 如何使用过程填充数据库

    我有大约 15 个不同的表 其中填充了不同的数据和不同的实体关系 我需要创建一个脚本 用这些表的内容填充我的数据库 脚本完成后 我使用 sqlplus 在 cmd 中运行它 然后使用 START文件路径 我有两个不同的 sql 文件 一个名
  • 从 Oracle Forms 调用 Microsoft Word 拼写检查时出现 Vista 焦点问题

    朋友们 在 Vista 上测试我们的 Oracle Forms 应用程序时 我发现了一个有趣的 挑战 应用程序可以调用 Microsoft Word 拼写检查器对字段执行拼写检查 调用时 用户将看到标准的 Microsoft Word 拼写
  • ORA-01741: 非法的零长度标识符

    您好 我在 shell 脚本中使用删除查询 并且遇到了这个问题 delete from WHITELIST CLI where filecode like Line Index condense Error ERROR ORA 01741
  • 从有序结果集中查找“运行”行

    我试图找出一种方法来识别满足某些条件的 运行 结果 按顺序连续行 目前 我正在订购结果集 并通过眼睛扫描特定模式 这是一个例子 SELECT the date name FROM orders WHERE the date BETWEEN
  • 了解 Mac 上的 Oracle Java

    我在 OS X 上使用 Java 很多很多年了 最近当 Apple 停止默认包含 Java 时 我放弃了操作系统并为我安装了它 当然是 Apple 的版本 现在我使用的是 OS X 10 8 并且需要安装 Java 7 因此我刚刚获得了 D
  • SQL 工作表未显示在 SQL Developer 中

    Suddenly SQL worksheet is not displaying in my SQL Developer When I click on Open SQL Worksheet or Alt F10 nothing will
  • oracle sql中where条件的动态数量

    我需要为报告工具中的提示编写一条sql 我得到变量中用 分隔的多个值的列表 并且这些值的数量可以变化 例如1 abc def eg2 abc def xyz 现在我需要在oracle中编写这种形式的sql 逻辑上 select someth
  • 在oracle sql中创建日期差异的自定义函数,排除周末和节假日

    我需要计算两个日期之间的天数decimal 不包括周末和节假日 by 使用自定义函数在 Oracle SQL 中 网站上也有类似的问题 然而 正如我所看到的 它们都没有要求使用自定义函数将输出作为十进制 我需要小数的原因是为了之后能够使用
  • 相当于 Oracle 的 SQL*Plus 中 MySQL 的 \G

    在 Oracle 的 SQL Plus 中 SELECT 的结果以表格方式显示 有没有办法以键值方式显示一行 例如MySQL的 G option http slaptijack com software enabling vertical
  • 具有多个数据源的 Tomcat 6/7 JNDI

    当有多个时
  • Oracle使用with子句创建表

    我可以从使用形成的查询创建表吗with clause Sure CREATE TABLE t AS WITH some data AS SELECT 1 as some value FROM dual UNION ALL SELECT 2
  • 神秘的 getClobVal()

    我有一个表 AKADMIN 其中包含 XMLTYPE 列 其名称为 XML 我想在该列中使用 getClobVal select t xml getClobVal t xml getClobVal t xml getClobVal as c

随机推荐