2011-09-29 20 views
44

Sto provando a connettermi a un database di PostgreSQL 9.1 utilizzando Oracle SQL Developer 3.0.04, ma finora non ho avuto alcun successo.Oracle SQL Developer e PostgreSQL

Innanzitutto, se aggiungo un driver di terze parti alle preferenze, quando si aggiunge una nuova connessione non c'è alcuna scheda per PostgreSQL (funziona benissimo per MySQL). Sto usando un driver JDBC4 versione 9.1, ma ho provato un JDBC3 della stessa versione e ottengo sempre la stessa cosa.

In secondo luogo, non c'è niente come la scheda di configurazione manuale quando si aggiunge una nuova connessione. La più vicina è l'opzione Avanzata nella scheda Oracle, dove posso fornire un URL personalizzato, ma non riesce perché si lamenta del Driver selezionato (ovviamente).

Infine, mi sono collegato importando una connessione da un file XML (contenuto sotto), ma visualizza solo i miei schemi e non mostra le mie tabelle al loro interno.

Quindi, la mia domanda è: Sviluppatore Orable SQL supporta le connessioni PostgreSQL? C'è un altro modo per avere le mie tabelle visualizzate nell'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> 

risposta

101

Oracle SQL Developer 4.0.1.14 does sicuramente i collegamenti di supporto per PostgreSQL.

Edit:

Se si dispone di un nome utente e di un nome di database diversi, è necessario specificare in hostname: hostname/database? (non dimenticare ?) o hostname:port/database?.

(grazie a @kinkajou e @ Kloe2378231; ulteriori dettagli su https://stackoverflow.com/a/28671213/565525).

+1

Tranne che non funzionerà se il nome utente e il nome del database sono diversi.Sembra un bug SQLDeveloper e non riesco a trovare alcun workaroud. – Kloe2378231

+0

@ user2378231Nel mio precedente commento che dice la stessa identica cosa della sua, ho spiegato anche la soluzione. –

+1

Richiedere 'localhost/database?' Nel campo hostname. – kinkajou

7

Oracle SQL Developer non supporta connessioni a PostgreSQL. Usa pgAdmin per connetterti a PostgreSQL invece, puoi ottenerlo dal seguente URL http://www.pgadmin.org/download/windows.php

+12

non è più corretto. lo sviluppatore sql supporta postgres per le versioni> = 4 – oligofren

16

Ho appena scaricato SQL Developer 4.0 per OS X (10.9), è appena uscito dalla versione beta. Ho anche scaricato the latest Postgres JDBC jar. Su un'allodola ho deciso di installarlo (lo stesso metodo di altri driver db di terze parti in SQL Dev) e l'ha accettato. Ogni volta che faccio clic su "nuova connessione", ora c'è una scheda per Postgres ... e facendo clic su di essa viene visualizzato un pannello che richiede i dettagli della connessione al database.

La risposta a questa domanda è cambiata, indipendentemente dal fatto che sia supportata o meno, sembra funzionare. C'è un pulsante "scegli database" che, se cliccato, ti dà un elenco a discesa pieno di database Postgres disponibili. Crea la connessione, aprila e elenca gli schemi in quel database. La maggior parte dei comandi postgres sembra funzionare, anche se non ci sono comandi psql (\ list, ecc.).

Coloro che necessitano di un singolo strumento per connettersi a più motori di database possono ora utilizzare SQL Developer.

+0

Esiste una sintassi speciale che è necessario utilizzare per qualsiasi campo o è semplicemente nome host/porta/nome utente/password così com'è? Quando provo, ottengo "database x non esiste" dove x è ciò che ho inserito nel campo username. –

+0

@JordanParmer Per impostazione predefinita, è previsto un nome di database uguale a quello dell'utente. Se si fa clic sul pulsante di prova, tuttavia, è possibile ottenerlo per compilare l'elenco di download. Hmm. Penso di stare ricordando male, potresti anche aver bisogno di creare lo stesso nome db, prima che compili l'elenco. Se hai ancora problemi, rispondi e tenterò di duplicare il metodo che ho usato e aggiungerlo alla risposta. –

+0

Ho pensato che il connettore di terze parti possa essere trovato nelle finestre di aggiornamento dello sviluppatore sql. Per fortuna hai i link JDBC di Postgres. – Charlesliam

1

Ho ottenuto l'elenco dei database da inserire inserendo il mio nome utente nel campo Nome utente (nessuna password) e facendo clic su "Scegli database". Non funziona con un campo Username vuoto, posso solo collegarmi al mio database utente in questo modo.

(Questo è stato con SQL Developer 4.0.0.13, Postgres.app 9.3.0.0, e PostgreSQL-9.3-1100.jdbc41.jar, FWIW.)

+0

Quali sono le sottostar del sistema operativo. – Charlesliam

+0

puoi fornirmi come installare postgresql-9.3-1100.jdbc41.jar passo dopo passo. [Postgresql Documentation] (http://www.postgresql.org/docs/7.2/static/jdbc.html) è una scorciatoia da seguire. Sono nuovo di java jdbc. – Charlesliam

+0

@Charlesliam Ho scritto un breve post sul blog su ciò che ho fatto: http://substars.github.io/2014/01/06/oracle-sql-developer-and-postgres. Sono su OSX ma le altre piattaforme dovrebbero essere per lo più le stesse. – substars

3

Sono riuscito a connettermi a postgres con SQL Developer. Ho scaricato il driver jdbc di Postgres e l'ho salvato in una cartella. Eseguo SQL Developer -> Strumenti -> Preferenze -> Cerca -> JDBC Ho definito il driver jdbc postgres per Database e Data Modeler (opzionale).

Questo è il trucco. Quando si crea una nuova connessione definire il nome host come localhost/crm? dove crm è il nome del database. Testare la connessione, funziona bene.

+0

Grande trucco, ma non dimenticare il? sulla fine. – oenpelli

Problemi correlati