题 Oracle SQL Developer和PostgreSQL


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

首先,如果我在首选项上添加第三方驱动程序,在添加新连接时,没有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>

46
2017-09-29 04:40


起源




答案:


Oracle SQL Developer 4.0.1.14肯定支持与PostgreSQL的连接。

编辑

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

(感谢@kinkajou和@ Kloe2378231;更多细节 https://stackoverflow.com/a/28671213/565525)。


112
2017-12-24 04:19



除非您的用户名和数据库名称不同,否则它将无法工作。这听起来像一个SQLDeveloper错误,我找不到任何workaroud。 - Kloe2378231
@ user2378231在我早期的评论中,他说的与他完全相同,我也解释了解决方法。 - John O
这需要 localhost/database? 在主机名字段中。 - kinkajou
要恢复 - 如果您有不同的用户名和数据库名,则应在hostname中指定: hostname/database? (不要忘记 ?) 要么 hostname:port/database? (更多细节 stackoverflow.com/a/28671213/565525) - Robert Lujo
起初我无法连接,我看到'选择数据库'在dropbox中没有显示任何内容。所以这里是解决方法,将数据库名称替换为用户名然后测试。如果成功,则会看到选择数据库保管箱已启用你可以在那里看到很多数据库。选择你想要的,然后把实际的用户名和测试,它将是成功的。 - Ankur


我刚刚下载了OS Developer 4.0 for OS X(10.9),它刚刚开始测试版。我也下载了 最新的Postgres JDBC jar。在云雀上我决定安装它(与SQL Dev中的其他第三方数据库驱动程序相同的方法),它接受了它。每当我点击“新连接”时,现在都有一个用于Postgres的选项卡......然后单击它会显示一个询问数据库连接详细信息的面板。

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

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


16
2017-09-29 06:38



您是否需要为任何字段使用特殊语法,或者它只是主机名/端口/用户名/密码?当我尝试它时,我得到'数据库x不存在',其中x是我在用户名字段中输入的内容。 - Jordan Parmer
@JordanParmer默认情况下,期望数据库名称与用户相同。但是,如果单击测试按钮,我可以将其填充到下载列表中。嗯。我认为我记错了,你可能还需要先创建同名的db,然后再填充列表。如果您仍有问题,请回复,我将尝试复制我使用的方法并将其添加到答案中。 - John O
我认为第三方连接器可以在sql developer的更新窗口中找到。你有Postgres JDBC链接的好东西。 - Charlesliam
您需要创建一个与用户名称相同的数据库。它可以留空,这样做让你看到其他数据库连接到...然后另一个显示在列表中,可以选择。这很尴尬,但现在是一个相当轻松的解决方法。 - John O
如上所述,我们在4中添加了支持 - 但它尚未得到官方支持,AKA是一个无证件的功能。关键字,正在'尚未'。与所有其他第三方数据库支持的平台一样,我们添加它们以帮助您将数据库和应用程序迁移到Oracle。 - thatjeffsmith


Oracle SQL Developer不支持与PostgreSQL的连接。使用pgAdmin连接到PostgreSQL,您可以从以下URL获取它 http://www.pgadmin.org/download/windows.php


8
2017-09-30 13:05



不再正确。 sql developer支持版本> = 4的postgres - oligofren


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

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


3
2018-01-07 05:23



很棒的伎俩,但不要忘了?最后。 - oenpelli


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

(这是SQL Developer 4.0.0.13,Postgres.app 9.3.0.0和postgresql-9.3-1100.jdbc41.jar,FWIW。)


1
2018-05-29 09:17



什么是你的操作系统.. - Charlesliam
你可以提供我如何逐步安装postgresql-9.3-1100.jdbc41.jar。 Postgresql文档 是一个很容易遵循的捷径。我是java jdbc的新手。 - Charlesliam
@Charlesliam我写了一篇关于我所做的快速博客文章: substars.github.io/2014/01/06/oracle-sql-developer-and-postgres。我在OSX上,但其他平台应该大致相同。 - substars
想要以相同的方式连接到Redshift数据库,因为它使用Postgres驱动程序。但是,如果使用不同的用户名和密码,它不会为我填充数据库 - Rakesh Singh


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

也许Oracle SQL Developer连接到postgresql时会有一些错误。但是我成功地将postgresql与navicat连接起来。(我的postgresql用户名和数据库名称不同


0



解决方案:如果您有不同的用户名和数据库名,则应在hostname中指定:hostname / database? (别忘了?)或主机名:port / database?。 - DONG
怎么 ”当我使用Navicat时“解决问题的方法”它与SQL Developer无法正常工作“? - a_horse_with_no_name