2011-09-29 148 views
44

我试图使用Oracle SQL Developer 3.0.04连接到PostgreSQL 9.1数据库,但到目前为止我没有任何成功。Oracle SQL Developer和PostgreSQL

首先,如果我在首选项上添加第三方驱动程序,添加新连接时没有PostgreSQL选项卡(但它对MySQL工作正常)。我正在使用JDBC4版本9.1驱动程序,但是我尝试了相同版本的JDBC3,并且仍然得到相同的结果。

其次,添加新连接时没有像手动配置选项卡那样的东西。最接近的是Oracle选项卡上的高级选项,我可以提供一个自定义URL,但由于抱怨所选驱动程序(当然)而失败。

最后,我已经连接从XML文件(下面的内容)导入连接,但它只显示我的模式,并不显示我的表内。

所以,我的问题是:Orable SQL Developer是否支持PostgreSQL连接?有没有其他方法让我的表在ObjectViewer中显示?

<?xml version = '1.0' encoding = 'UTF-8'?> 
<References xmlns="http://xmlns.oracle.com/adf/jndi"> 
    <Reference name="Lumea" className="oracle.jdeveloper.db.adapter.DatabaseProvider" credentialStoreKey="Lumea" xmlns=""> 
     <Factory className="oracle.jdeveloper.db.adapter.DatabaseProviderFactory"/> 
     <RefAddresses> 
      <StringRefAddr addrType="user"> 
       <Contents>lumea</Contents> 
      </StringRefAddr> 
      <StringRefAddr addrType="subtype"> 
       <Contents>thirdParty</Contents> 
      </StringRefAddr> 
      <StringRefAddr addrType="customUrl"> 
       <Contents>jdbc:postgresql://localhost:5432/versates</Contents> 
      </StringRefAddr> 
      <StringRefAddr addrType="SavePassword"> 
       <Contents>true</Contents> 
      </StringRefAddr> 
      <StringRefAddr addrType="password"> 
       <Contents>myencryptedpass</Contents> 
      </StringRefAddr> 
      <StringRefAddr addrType="driver"> 
       <Contents>org.postgresql.Driver</Contents> 
      </StringRefAddr> 
      <StringRefAddr addrType="DeployPassword"> 
       <Contents>true</Contents> 
      </StringRefAddr> 
     </RefAddresses> 
    </Reference> 
</References> 

回答

101

的Oracle SQL Developer 4.0.1.14可靠地不支持连接PostgreSQL的。Postgres的

编辑

如果您有不同的用户名和数据库名称,则应在主机名中指定:hostname/database?(不要忘记?)或hostname:port/database?

(感谢@kinkajou和@ Kloe2378231;关于https://stackoverflow.com/a/28671213/565525的更多详细信息)。

+1

除非您的用户名和数据库名称不同,否则它不起作用。这听起来像一个SQLDeveloper错误,我找不到任何workaroud。 – Kloe2378231

+0

@ user2378231在我早期的评论中,他说的和他一样,我也解释了解决方法。 –

+1

它会在主机名字段中要求'localhost/database?'。 – kinkajou

16

我刚刚下载SQL Developer 4.0的OS X(10.9),它刚刚测试版。我也下载了the latest Postgres JDBC jar。在百灵公司,我决定安装它(与SQL Dev中的其他第三方db驱动程序相同的方法),并接受它。每当我点击“新连接”时,现在有一个选项卡用于Postgres ...并单击它显示一个要求提供数据库连接详细信息的面板。

这个问题的答案已经改变,无论它是否被支持,它似乎工作。有一个“选择数据库”按钮,如果点击,给你一个下拉列表填充可用的postgres数据库。您创建连接并将其打开,并列出该数据库中的模式。尽管没有psql命令(\ list等),但大多数postgres命令似乎都能正常工作。

那些需要单一工具连接到多个数据库引擎的人现在可以使用SQL Developer。

+0

是否有一个特殊的语法需要用于任何字段,或者它是简单的主机名/端口/用户名/密码?当我尝试它时,我得到'数据库x不存在',其中x是我在用户名字段中输入的内容。 –

+0

@JordanParmer默认情况下,期望数据库名称与用户相同。但是,如果您单击测试按钮,我可以将其填入下载列表。嗯。我想我误解了,你可能还需要先创建同名的数据库,然后才会填充列表。如果仍有问题,请回复,我将尝试复制我使用的方法并将其添加到答案中。 –

+0

我认为第三方连接器可以在SQL开发人员的更新窗口中找到。好东西你有Postgres JDBC链接。 – Charlesliam

1

我通过在用户名字段中输入用户名(无密码)并单击“选择数据库”来获取要填充的数据库列表。不能使用空白的用户名字段,我只能以这种方式连接到我的用户数据库。

(这与SQL开发4.0.0.13,Postgres.app 9.3.0.0和PostgreSQL-9.3-1100.jdbc41.jar,FWIW。)

+0

什么是您的操作系统的子版本.. – Charlesliam

+0

您可以向我提供如何逐步安装postgresql-9.3-1100.jdbc41.jar。 [Postgresql文档](http://www.postgresql.org/docs/7.2/static/jdbc.html)是一个非常有效的捷径。我是新来的java jdbc。 – Charlesliam

+0

@Charlesliam我写了一篇关于我所做的快速博客文章:http://substars.github.io/2014/01/06/oracle-sql-developer-and-postgres。我在OSX上,但其他平台应该大致相同。 – substars

3

我设法用SQL Developer连接到postgres。 我下载了postgres jdbc驱动程序并将其保存在一个文件夹中。 我运行SQL Developer - >工具 - >首选项 - >搜索 - > JDBC 我为数据库和数据建模器(可选)定义了postgres jdbc驱动程序。

这是诀窍。 当创建新的连接定义主机名像localhost/crm?其中crm是数据库名称。测试连接,工作正常。

+0

伟大的伎俩,但不要忘记?最后。 – oenpelli