Oracle SQL 开发人员和 PostgreSQL

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

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

其次,在添加新连接时,没有什么比手动配置选项卡更好的了。最接近的是 Oracle 选项卡上的 Advanced 选项,我可以在其中提供一个自定义 URL,但它失败了,因为抱怨所选的 Driver (当然)。

最后,我从一个 XML 文件(下面的内容)导入了一个连接,但是它只显示我的模式,而不显示其中的表。

因此,我的问题是: OrableSQLDeveloper 支持 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>
160783 次浏览

OracleSQLDeveloper 不支持到 PostgreSQL 的连接。使用 pgAdmin 连接到 PostgreSQL,您可以从以下 URL 获得它 Http://www.pgadmin.org/download/windows.php

我刚刚下载了用于 OS X 的 SQL Developer 4.0(10.9) ,刚刚测试完。我还下载了 最新的 Postgres JDBC 罐子。出于好玩,我决定安装它(与 SQLDev 中其他第三方 db 驱动程序的方法相同) ,它接受了。每当我点击“新连接”,现在有一个标签为 Postgres... 和点击它显示一个面板,要求数据库连接的细节。

这个问题的答案已经改变了,不管它是否得到支持,它似乎是有效的。有一个“选择数据库”按钮,如果点击,给你一个下拉列表充满了可用的 postgres 数据库。您创建连接,打开它,它将列出该数据库中的架构。虽然没有 psql 命令(list 等) ,但大多数 postgres 命令似乎都可以工作。

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

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

(这是使用 SQL Developer 4.0.0.13、 Postgres.app 9.3.0.0和 postgreql-9.3-1100.jdbc41.jar,FWIW 完成的)

Oracle SQL Developer 4.0.1.14确实支持到 PostgreSQL 的连接。

编辑 :

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

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

我设法连接到 postgres 与 SQL 开发人员。 我下载了 postgres jdbc 驱动程序并将其保存在一个文件夹中。 我运行 SQL Developer-> Tools-> Preferences-> Search-> JDBC 我为 Database 和 Data Modeler 定义了 postgres jdbc 驱动程序(可选)。

这就是诀窍。 当创建新的连接时,像 localhost/crm? 这样定义 Hostname,其中 crm 是数据库名。

除非用户名和数据库名不同,否则它不会工作。这听起来像一个 SQLDeveloper 错误,我找不到任何变通方法

当 OracleSQLDeveloper 连接到 postgreql 时,可能存在一些 bug。然而,我成功地将 postgreql 与 navicat 连接起来。(我的 postgreql 用户名和数据库名是不同的

如果没有与用户名同名的数据库,那么单击“选择数据库”将失败,并出现“ 状态: 失败 -FATAL: 数据库“ your _ username”不存在”错误

为了解决这个问题,将 5432/database_name?放在 左舷字段中,其中 5432是 Postgres 实例的端口,而 database_nameyour_username可以访问的现有数据库的名称。然后再次点击“选择数据库”,它应该工作。现在可以选择所需的数据库,并从 Port 字段中删除额外的 /database_name?

我认为这个问题需要一个更新的答案,因为 PostgreSQL 和 SQLDeveloper 在最初提出这个问题时已经更新了好几次。

我在 Azure 中运行了一个 PostgreSQL 实例,使用 SSLMODE = Require。 虽然我一直在使用 DBeaverCE 访问该实例并生成 ER 图,但我已经非常熟悉 SQLDeveloper,它现在的版本是 v19.4。

关于下载最新 PostgreSQLJDBC 驱动程序以及将其放置在何处的说明是正确的。但是,已经改变的是配置数据库访问的位置。

你会发现一个文件 $HOME/.sqldeveloper/system19.4.0.354.1759/o.jdeveloper.db.connection.19.3.0.354.1759/connections.json:

{
"connections": [
{
"name": "connection-name-goes-here",
"type": "jdbc",
"info": {
"customUrl": "jdbc:postgresql://your-postgresql-host:5432/DBNAME?sslmode=require",
"hostname": "your-postgresql-host",
"driver": "org.postgresql.Driver",
"subtype": "SDPostgreSQL",
"port": "5432",
"SavePassword": "false",
"RaptorConnectionType": "SDPostgreSQL",
"user": "your_admin_user",
"sslmode": "require"
}
}
]
}

您可以将此连接与 DataModeler 和 SQLDeveloper 的管理功能一起使用。在 customUrl 中指定所有端口、 dbname 和 sslmode 是必需的,因为 SQLDeveloper 没有将 sslmode 包含在它通过 JDBC 发送的内容中,所以必须手工构造它。

Oracle SQL Developer 2020-02支持 PostgreSQL,但是通过在 jdbc 目录下添加 postgreSQL 驱动程序和作为第三方驱动程序进行配置,这只是基础。

支持的功能:

  • 可以在连接定义中选择的多个数据库
  • CRUD 操作(如查询表)
  • 计划运作
  • 基本建模支持: 显示没有 pk,fk,连接的表

不支持的功能:

  • 没有表或字段完成
  • 选项卡中不显示索引
  • 没有约束显示在选项卡中,如: fk、 pk-s、惟一或其他
  • 编辑器中没有表或字段完成
  • 没有显示函数、包、触发器和视图

遗憾的是 Oracle 只应该在 PostgreSql 连接的情况下更改这个视图背后的查询。例如,对于索引,他们需要使用这个查询: select * from pg _ alog。指数;

Host = localhost/postgres? 如果你需要一个模式/数据库,我可以使用:

Localhost/postgres? currentSchema = myschema

例如: localhost/postgres? currentSchema = public

连接后,还可以使用 [选择数据库]按钮,然后下拉

Sql 开发人员的 postgres jdbc url 为我们其他人