0xDBE / PHPStorm / IDEA无法同步数据库的表

时间:2015-08-12 13:18:29

标签: intellij-idea phpstorm datagrip

尝试在0xDBE中同步数据库表时出现以下错误:

Method org.postgresql.jdbc4.Jdbc4Array.free() is not yet implemented.
Method org.postgresql.jdbc4.Jdbc4Array.free() is not yet implemented.
The SQL statement:
with languages as (select oid as lang_oid, lanname as lang
                   from pg_catalog.pg_language),
     routines as (select proname as r_name,
                         prolang as lang_oid,
                         oid as r_id,
                         xmin as r_state_number,
                         proargnames as arg_names,
                         proargmodes as arg_modes,
                         proargtypes::int[] as in_arg_types,
                         proallargtypes::int[] as all_arg_types,
                         proargdefaults as arg_defaults,
                         provariadic as arg_variadic_id,
                         prorettype as ret_type_id,
                         proisagg as is_aggregate,
                         proiswindow as is_window,
                         provolatile as volatile_kind
                  from pg_catalog.pg_proc
                  where pronamespace = oid(?)
                    and xmin::varchar::bigint > ?)
select *
from routines natural join languages

  at org.jetbrains.jdba.jdbc.BaseExceptionRecognizer.recognizeException(BaseExceptionRecognizer.java:48)
  at org.jetbrains.jdba.jdbc.JdbcIntermediateSession.recognizeException(JdbcIntermediateSession.java:347)
  at org.jetbrains.jdba.jdbc.JdbcIntermediateCursor.fetch(JdbcIntermediateCursor.java:249)
  at com.intellij.database.remote.jdba.impl.RemoteCursorImpl.fetch(RemoteCursorImpl.java:31)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  at java.lang.reflect.Method.invoke(Method.java:606)
  at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:322)
  at sun.rmi.transport.Transport$2.run(Transport.java:202)
  at sun.rmi.transport.Transport$2.run(Transport.java:199)
  at java.security.AccessController.doPrivileged(Native Method)
  at sun.rmi.transport.Transport.serviceCall(Transport.java:198)
  at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:567)
  at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:828)
  at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.access$400(TCPTransport.java:619)
  at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$1.run(TCPTransport.java:684)
  at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$1.run(TCPTransport.java:681)
  at java.security.AccessController.doPrivileged(Native Method)
  at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:681)
  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
  at java.lang.Thread.run(Thread.java:745)
  at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:275)
  at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:252)
  at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:161)
  at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(RemoteObjectInvocationHandler.java:217)
  at java.rmi.server.RemoteObjectInvocationHandler.invoke(RemoteObjectInvocationHandler.java:171)
  at com.sun.proxy.$Proxy93.fetch(Unknown Source)
  at sun.reflect.GeneratedMethodAccessor37.invoke(Unknown Source)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  at java.lang.reflect.Method.invoke(Method.java:606)
  at com.intellij.execution.rmi.RemoteUtil.invokeRemote(RemoteUtil.java:124)
  at com.intellij.execution.rmi.RemoteUtil.access$100(RemoteUtil.java:36)
  at com.intellij.execution.rmi.RemoteUtil$RemoteInvocationHandler.invoke(RemoteUtil.java:229)
  at com.sun.proxy.$Proxy94.fetch(Unknown Source)
  at org.jetbrains.jdba.intermediate.AdaptIntermediateStructCollectingCursor.fetch(AdaptIntermediateStructCollectingCursor.java:107)
  at org.jetbrains.jdba.core.BaseQueryRunner.fetchPack(BaseQueryRunner.java:88)
  at org.jetbrains.jdba.core.BaseQueryRunner.run(BaseQueryRunner.java:70)
  at com.intellij.dbm.postgre.PostgreIntrospector$SchemaRetriever.h(PostgreIntrospector.java:459)
  at com.intellij.dbm.postgre.PostgreIntrospector$SchemaRetriever.access$600(PostgreIntrospector.java:177)
  at com.intellij.dbm.postgre.PostgreIntrospector$SchemaRetriever$4.run(PostgreIntrospector.java:246)
  at com.intellij.dbm.postgre.PostgreIntrospector$SchemaRetriever.a(PostgreIntrospector.java:203)
  at com.intellij.dbm.postgre.PostgreIntrospector$SchemaRetriever.retrieve(PostgreIntrospector.java:242)
  at com.intellij.dbm.postgre.PostgreIntrospector$2.run(PostgreIntrospector.java:169)
  at org.jetbrains.jdba.core.BaseSession.inTransaction(BaseSession.java:88)
  at org.jetbrains.jdba.core.BaseFacade$2.run(BaseFacade.java:93)
  at org.jetbrains.jdba.core.BaseFacade.inSession(BaseFacade.java:125)
  at org.jetbrains.jdba.core.BaseFacade.inTransaction(BaseFacade.java:89)
  at com.intellij.dbm.postgre.PostgreIntrospector.a(PostgreIntrospector.java:165)
  at com.intellij.dbm.postgre.PostgreIntrospector.b(PostgreIntrospector.java:153)
  at com.intellij.dbm.postgre.PostgreIntrospector.introspect(PostgreIntrospector.java:86)
  at com.intellij.database.dataSource.NativeSchemaLoader.a(NativeSchemaLoader.java:113)
  at com.intellij.database.dataSource.NativeSchemaLoader.introspectAndAdapt(NativeSchemaLoader.java:67)
  at com.intellij.database.dataSource.DatabaseSchemaLoader.loadDataSourceState(DatabaseSchemaLoader.java:107)
  at com.intellij.database.dataSource.AbstractDataSource.refreshMetaData(AbstractDataSource.java:59)
  at com.intellij.database.dataSource.AbstractDataSource$1.perform(AbstractDataSource.java:34)
  at com.intellij.database.dataSource.AbstractDataSource$1.perform(AbstractDataSource.java:32)
  at com.intellij.database.dataSource.AbstractDataSource.performJdbcOperation(AbstractDataSource.java:110)
  at com.intellij.database.dataSource.AbstractDataSource.refreshMetaData(AbstractDataSource.java:32)
  at com.intellij.database.dataSource.DataSourceUiUtil$2.run(DataSourceUiUtil.java:167)
  at com.intellij.openapi.progress.impl.CoreProgressManager$TaskRunnable.run(CoreProgressManager.java:563)
  at com.intellij.openapi.progress.impl.CoreProgressManager$2.run(CoreProgressManager.java:142)
  at com.intellij.openapi.progress.impl.CoreProgressManager.a(CoreProgressManager.java:446)
  at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:392)
  at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:54)
  at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:127)
  at com.intellij.openapi.progress.impl.ProgressManagerImpl$1.run(ProgressManagerImpl.java:126)
  at com.intellij.openapi.application.impl.ApplicationImpl$8.run(ApplicationImpl.java:367)
  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
  at java.util.concurrent.FutureTask.run(FutureTask.java:262)
  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
  at java.lang.Thread.run(Thread.java:745)
  at org.jetbrains.ide.PooledThreadExecutor$1$1.run(PooledThreadExecutor.java:55)
Caused by: java.sql.SQLFeatureNotSupportedException: Method org.postgresql.jdbc4.Jdbc4Array.free() is not yet implemented.
  at org.postgresql.Driver.notImplemented(Driver.java:727)
  at org.postgresql.jdbc4.Jdbc4Array.free(Jdbc4Array.java:57)
  at org.jetbrains.jdba.jdbc.JdbcValueGetters$AbstractArrayGetter.getValue(JdbcValueGetters.java:473)
  at org.jetbrains.jdba.jdbc.JdbcRowFetchers$TupleFetcher.fetchRow(JdbcRowFetchers.java:163)
  at org.jetbrains.jdba.jdbc.JdbcRowFetchers$TupleFetcher.fetchRow(JdbcRowFetchers.java:145)
  at org.jetbrains.jdba.jdbc.JdbcRowsCollectors$ListCollector.collectRows(JdbcRowsCollectors.java:211)
  at org.jetbrains.jdba.jdbc.JdbcRowsCollectors$ListCollector.collectRows(JdbcRowsCollectors.java:198)
  at org.jetbrains.jdba.jdbc.JdbcIntermediateCursor.fetch(JdbcIntermediateCursor.java:245)
  at com.intellij.database.remote.jdba.impl.RemoteCursorImpl.fetch(RemoteCursorImpl.java:31)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  at java.lang.reflect.Method.invoke(Method.java:606)
  at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:322)
  at sun.rmi.transport.Transport$2.run(Transport.java:202)
  at sun.rmi.transport.Transport$2.run(Transport.java:199)
  at java.security.AccessController.doPrivileged(Native Method)
  at sun.rmi.transport.Transport.serviceCall(Transport.java:198)
  at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:567)
  at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:828)
  at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.access$400(TCPTransport.java:619)
  at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$1.run(TCPTransport.java:684)
  at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$1.run(TCPTransport.java:681)
  at java.security.AccessController.doPrivileged(Native Method)
  at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:681)
  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
  at java.lang.Thread.run(Thread.java:745)

但是,从控制台执行查询时,我得到的数据是正确的。我不太确定这里有什么失败,因为我在使用pgAdmin时没有任何问题。

这是否发生在其他人身上?

2 个答案:

答案 0 :(得分:80)

我通过重新下载0xDBE正在使用的JDBC驱动程序解决了这个问题。右键单击数据源,然后转到首选项并清除当前正在使用的驱动程序文件并再次下载。

JDBC files Download JDBC files

重新加载驱动程序后,必须重新启动IDE才能使更改生效。

答案 1 :(得分:5)

我能够通过打开数据源设置页面(在其中输入数据库凭据)并切换到标签Options并启用Introspect using JDBC metadata来解决此问题:

enter image description here