我正在尝试使用 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>
Oracle SQL Developer 4.0.1.14 确实支持与 PostgreSQL 的连接。
下载 Postgres 的 JDBC 驱动程序 (http://jdbc.postgresql.org/download.html)
在 SQL Developer 中,转到工具 → 首选项,数据库 → 第三方 JDBC 驱动程序并添加 jar 文件(有关分步示例,请参见 http://www.oracle.com/technetwork/products/migration/jdbc-migration-1923524.html )
现在只需创建一个新的数据库连接,而不是 Oracle,选择 PostgreSQL 选项卡
编辑:
如果您有不同的用户名和数据库名,则应在主机名中指定:hostname/database?
(不要忘记 ?
)或 hostname:port/database?
。
(感谢@kinkajou 和@Kloe2378231;有关https://stackoverflow.com/a/28671213/565525 的更多详细信息)。
我刚刚下载了适用于 OS X (10.9) 的 SQL Developer 4.0,它刚刚完成测试版。我还下载了 the latest Postgres JDBC jar。我决定安装它(与 SQL Dev 中的其他第三方数据库驱动程序相同的方法),它接受了它。每当我单击“新连接”时,Postgres 现在都会出现一个选项卡...单击它会显示一个面板,询问数据库连接详细信息。
这个问题的答案已经改变,不管它是否被支持,它似乎都有效。有一个“选择数据库”按钮,如果单击该按钮,将为您提供一个包含可用 postgres 数据库的下拉列表。您创建连接,打开它,它会列出该数据库中的模式。大多数 postgres 命令似乎都可以工作,但没有 psql 命令(\list 等)。
那些需要一个工具来连接多个数据库引擎的人现在可以使用 SQL Developer。
Oracle SQL Developer 不支持与 PostgreSQL 的连接。改为使用 pgAdmin 连接到 PostgreSQL,您可以从以下 URL http://www.pgadmin.org/download/windows.php 获取它
我设法用 SQL Developer 连接到 postgres。我下载了 postgres jdbc 驱动程序并将其保存在一个文件夹中。我运行 SQL Developer -> 工具 -> 首选项 -> 搜索 -> JDBC 我为数据库和数据建模器定义了 postgres jdbc 驱动程序(可选)。
这就是诀窍。创建新连接时定义主机名,如 localhost/crm?其中 crm 是数据库名称。测试连接,工作正常。
我认为这个问题需要一个更新的答案,因为 PostgreSQL 和 SQLDeveloper 自最初被问到以来已经更新了好几次。
我有一个在 Azure 中运行的 PostgreSQL 实例,SSLMODE=Require。虽然我一直在使用 DBeaverCE 访问该实例并生成一个 ER 图,但我已经非常熟悉 SQLDeveloper,它现在是 v19.4。
有关下载最新 PostgreSQL JDBC 驱动程序以及放置位置的说明是正确的。然而,改变的是在哪里配置你的数据库访问。
您会找到一个文件 $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"
}
}
]
}
您可以将此连接与 Data Modeller 和 SQLDeveloper 的管理功能一起使用。需要在 customUrl 中指定所有端口、dbname 和 sslmode,因为 SQLDeveloper 在通过 JDBC 发送的内容中不包括 sslmode,因此您必须手动构建它。
通过将我的用户名放在用户名字段(无密码)并单击“选择数据库”,我得到了要填充的数据库列表。不适用于空白用户名字段,我只能以这种方式连接到我的用户数据库。
(这是使用 SQL Developer 4.0.0.13、Postgres.app 9.3.0.0 和 postgresql-9.3-1100.jdbc41.jar、FWIW。)
如果没有与用户名同名的数据库,则单击“选择数据库”将失败,并出现类似“状态:失败 - 致命:数据库“您的用户名”不存在”的错误
要解决此问题,请将 5432/database_name?
放入 Port 字段,其中 5432
是 Postgres 实例的端口,database_name
是 your_username
有权访问的现有数据库的名称至。然后再次单击“选择数据库”,它应该可以工作。现在您可以选择所需的数据库并从端口字段中删除额外的 /database_name?
。
Oracle SQL Developer 2020-02 支持 PostgreSQL,但这只是基础,通过在 jdbc 目录下添加 postgreSQL 驱动程序并通过添加为 3rd 方驱动程序进行配置。
支持的功能:
可以在连接定义中选择的多个数据库
CRUD 操作,如查询表
计划运作
基本建模支持:显示没有 pk、fk、连接的表
不支持的功能:
没有表格或字段完成
选项卡中不显示索引
选项卡中不显示任何约束,例如:fk、pk-s、unique 或其他
编辑器中没有表格或字段完成
没有显示函数、包、触发器、视图
可悲的是,Oracle 应该只在 PostgreSql 连接的情况下更改此视图后面的查询。例如对于他们需要使用这个查询的索引: select * from pg_catalog.pg_indexes;
除非您的用户名和数据库名不同,否则它将不起作用。这听起来像一个 SQLDeveloper 错误,我找不到任何解决方法
可能是Oracle SQL Developer在连接postgresql时出现了一些错误。但是我将postgresql与navicat连接成功。(我的postgresql用户名和数据库名称不同
不定期副业成功案例分享
localhost/database?
。hostname/database?
(不要忘记?
)或hostname:port/database?
(有关 stackoverflow.com/a/28671213/565525 的更多详细信息)