簡體   English   中英

Oracle SQL 開發者和 PostgreSQL

[英]Oracle SQL Developer and 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>

Oracle SQL Developer 4.0.1.14 確實支持連接到 PostgreSQL。

編輯

如果您有不同的用戶名和數據庫名,則應在主機hostname/database?指定: hostname/database? (不要忘記? )或hostname:port/database? .

(感謝@kinkajou 和@Kloe2378231;更多詳情請見https://stackoverflow.com/a/28671213/565525 )。

我剛剛下載了適用於 OS X (10.9) 的 SQL Developer 4.0,它剛剛結束測試版。 我還下載了最新的 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。)

如果沒有與用戶名同名的數據庫,則單擊“選擇數據庫”將失敗並顯示類似“狀態:失敗 -FATAL:數據庫“your_username”不存在”的錯誤

要解決此問題,請將5432/database_name? Port字段中,其中5432是 Postgres 實例的端口, database_nameyour_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 用戶名和數據庫名稱不同

主機=本地主機/postgres? 如果您需要使用架構/數據庫,則為我工作:

localhost/postgres?currentSchema=myschema

例如:localhost/postgres?currentSchema=public

連接后,您也可以使用 [Choose Database] 按鈕並下拉

sql 開發人員 postgres jdbc url 用於我們的 Z65E8800B5C6800AAD896F888B2A6A6A

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM