2011-09-29 29 views
44

Estoy tratando de conectarme a una base de datos PostgreSQL 9.1 utilizando Oracle SQL Developer 3.0.04, pero hasta ahora no he tenido ningún éxito.Oracle SQL Developer y PostgreSQL

En primer lugar, si agrego un controlador de terceros en las preferencias, al agregar una nueva conexión no hay ninguna pestaña para PostgreSQL (aunque funciona bien para MySQL). Estoy usando un controlador JDBC4 versión 9.1, pero probé un JDBC3 de la misma versión y todavía obtengo lo mismo.

En segundo lugar, no hay nada como la pestaña de configuración manual al agregar una nueva conexión. Lo más cercano es la opción Avanzada en la pestaña Oracle, donde puedo proporcionar una URL personalizada, pero falla porque se queja sobre el controlador seleccionado (por supuesto).

Finalmente, me conecté importando una conexión desde un archivo XML (contenido a continuación), pero solo muestra mis esquemas y no muestra mis tablas dentro de ellos.

Entonces, mi pregunta es: ¿Orable SQL Developer admite conexiones PostgreSQL? ¿Hay alguna otra manera de mostrar mis tablas en el 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> 

Respuesta

101

Oracle SQL Developer 4.0.1.14 seguramente no las conexiones de apoyo a PostgreSQL.

Editar:

Si tiene un nombre de usuario y nombre de base de datos diferentes, debe especificar en nombre de host: hostname/database? (no olvide ?) o hostname:port/database?.

(gracias a @kinkajou y @Kloe2378231; más detalles sobre https://stackoverflow.com/a/28671213/565525).

+1

Excepto que no funcionará si su nombre de usuario y nombre de la base de datos son diferentes.Parece un error SQLDeveloper y no puedo encontrar ningún workaroud. – Kloe2378231

+0

@ user2378231 En mi comentario anterior que dice lo mismo que el suyo, expliqué la solución también. –

+1

¿Se requiere 'localhost/database?' En el campo de nombre de host. – kinkajou

7

Oracle SQL Developer no admite conexiones a PostgreSQL. Utilice pgAdmin para conectar a PostgreSQL en su lugar, se puede obtener de la siguiente URL http://www.pgadmin.org/download/windows.php

+12

ya no es correcto. El desarrollador sql admite postgres para las versiones> = 4 – oligofren

16

Acabo de descargar SQL Developer 4.0 para OS X (10.9), que acaba de salir de la beta. También descargué the latest Postgres JDBC jar. Por suerte decidí instalarlo (el mismo método que otros controladores db de terceros en SQL Dev) y lo aceptó. Cada vez que hago clic en "nueva conexión", hay una pestaña ahora para Postgres ... y al hacer clic en ella se muestra un panel que solicita los detalles de conexión de la base de datos.

La respuesta a esta pregunta ha cambiado, tanto si es compatible como si no, parece funcionar. Hay un botón "elegir base de datos", que si hace clic, le da una lista desplegable llena de bases de datos de postgres disponibles. Usted crea la conexión, la abre y enumera los esquemas en esa base de datos. La mayoría de los comandos de Postgres parecen funcionar, aunque no hay comandos psql (\ list, etc.).

Aquellos que necesitan una sola herramienta para conectarse a múltiples motores de bases de datos ahora pueden usar SQL Developer.

+0

¿Hay alguna sintaxis especial que necesite usar para cualquiera de los campos o simplemente es el nombre de host/puerto/nombre de usuario/contraseña tal como está? Cuando lo intento, obtengo 'database x does not exist' donde x es lo que ingresé en el campo de nombre de usuario. –

+0

@JordanParmer Se espera un nombre de base de datos igual al del usuario, por defecto. Sin embargo, si hace clic en el botón de prueba, puedo obtener que complete la lista de descargas. Hmm. Creo que estoy recordando mal, también es posible que también deba crear el archivo db con el mismo nombre antes de completar la lista. Si aún tiene problemas, responda e intentaré duplicar el método que usé y agregarlo a la respuesta. –

+0

Pensé que el conector de terceros se puede encontrar en las ventanas de actualización del desarrollador sql. Lo bueno es que tienes enlaces JDBC de Postgres. – Charlesliam

1

Obtuve la lista de bases de datos a llenar poniendo mi nombre de usuario en el campo Nombre de usuario (sin contraseña) y haciendo clic en "Seleccionar base de datos". No funciona con un campo de nombre de usuario en blanco, solo puedo conectarme a mi base de datos de usuario de esa manera.

(Esto fue con SQL Developer 4.0.0.13, Postgres.app 9.3.0.0, y PostgreSQL-9.3-1100.jdbc41.jar, Fwiw.)

+0

¿Cuáles son sus entidades de sistema operativo .. – Charlesliam

+0

puede proporcionarme cómo instalar el postgresql-9.3-1100.jdbc41.jar paso a paso. [Postgresql Documentation] (http://www.postgresql.org/docs/7.2/static/jdbc.html) es un atajo bastante a seguir. Soy nuevo en java jdbc. – Charlesliam

+0

@Charlesliam Escribí una publicación rápida en mi blog sobre lo que hice: http://substars.github.io/2014/01/06/oracle-sql-developer-and-postgres. Estoy en OSX, pero otras plataformas deberían ser más o menos iguales. – substars

3

Logré conectarme a postgres con SQL Developer. Descargué el controlador jdbc de postgres y lo guardé en una carpeta. Ejecuto SQL Developer -> Herramientas -> Preferencias -> Buscar -> JDBC Definí el controlador jdbc de postgres para la base de datos y el modelador de datos (opcional).

Este es el truco. Al crear una nueva conexión, ¿definir nombre de host como localhost/crm? donde crm es el nombre de la base de datos. Pruebe la conexión, funciona bien.

+0

Gran truco, pero no olvides el? al final. – oenpelli

Cuestiones relacionadas