2016-06-25 54 views
0

我已經安裝了Oracle Express 11g並嘗試使用ojdbc6從我的java應用程序讀取數據庫表。不過,我得到異常以下語句:java.sql.SQLDataException:ORA-01424:轉義字符後面缺少或非法字符

connection.getMetaData().getColumns(null, null, table, null); 

異常的完整堆棧跟蹤是:

java.sql.SQLDataException: ORA-01424: missing or illegal character following the escape character 

at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:440) 
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:396) 
at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:837) 
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:445) 
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:191) 
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:523) 
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:207) 
at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:1010) 
at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1185) 
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1275) 
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3576) 
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3620) 
at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1491) 
at oracle.jdbc.driver.OracleDatabaseMetaData.getColumnsWithWildcards(OracleDatabaseMetaData.java:331) 
at oracle.jdbc.driver.OracleDatabaseMetaData.getColumns(OracleDatabaseMetaData.java:125) 
at org.nicholding.nicat.view.wizard.ImportTablePage.getNumberOfColumns(ImportTablePage.java:316) 
at org.nicholding.nicat.view.wizard.ImportTablePage$3.getText(ImportTablePage.java:167) 
at org.eclipse.jface.viewers.ColumnLabelProvider.update(ColumnLabelProvider.java:36) 
at org.eclipse.jface.viewers.ViewerColumn.refresh(ViewerColumn.java:152) 
at org.eclipse.jface.viewers.AbstractTableViewer.doUpdateItem(AbstractTableViewer.java:399) 
at org.eclipse.jface.viewers.StructuredViewer$UpdateItemSafeRunnable.run(StructuredViewer.java:485) 
at org.eclipse.jface.util.SafeRunnable$1.run(SafeRunnable.java:128) 
at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175) 
at org.eclipse.jface.viewers.StructuredViewer.updateItem(StructuredViewer.java:2167) 
at org.eclipse.jface.viewers.AbstractTableViewer.createItem(AbstractTableViewer.java:277) 
at org.eclipse.jface.viewers.AbstractTableViewer.internalRefreshAll(AbstractTableViewer.java:757) 
at org.eclipse.jface.viewers.AbstractTableViewer.internalRefresh(AbstractTableViewer.java:649) 
at org.eclipse.jface.viewers.AbstractTableViewer.internalRefresh(AbstractTableViewer.java:636) 
at org.eclipse.jface.viewers.AbstractTableViewer$2.run(AbstractTableViewer.java:592) 
at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1443) 
at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1404) 
at org.eclipse.jface.viewers.AbstractTableViewer.inputChanged(AbstractTableViewer.java:590) 
at org.eclipse.jface.viewers.ContentViewer.setInput(ContentViewer.java:280) 
at org.eclipse.jface.viewers.StructuredViewer.setInput(StructuredViewer.java:1690) 
at org.nicholding.nicat.view.wizard.ImportTablePage.setVisible(ImportTablePage.java:244) 
at org.eclipse.jface.wizard.WizardDialog.updateForPage(WizardDialog.java:1259) 
at org.eclipse.jface.wizard.WizardDialog.access$4(WizardDialog.java:1238) 
at org.eclipse.jface.wizard.WizardDialog$8.run(WizardDialog.java:1227) 
at org.eclipse.swt.custom.BusyIndicator.showWhile(Unknown Source) 
at org.eclipse.jface.wizard.WizardDialog.showPage(WizardDialog.java:1225) 
at org.eclipse.jface.wizard.WizardDialog.nextPressed(WizardDialog.java:915) 
at org.eclipse.jface.wizard.WizardDialog.buttonPressed(WizardDialog.java:428) 
at org.eclipse.jface.dialogs.Dialog$2.widgetSelected(Dialog.java:624) 
at org.eclipse.swt.widgets.TypedListener.handleEvent(Unknown Source) 
at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source) 
at org.eclipse.swt.widgets.Display.sendEvent(Unknown Source) 
at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source) 
at org.eclipse.swt.widgets.Display.runDeferredEvents(Unknown Source) 
at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source) 
at org.eclipse.jface.window.Window.runEventLoop(Window.java:825) 
at org.eclipse.jface.window.Window.open(Window.java:801) 
at org.nicholding.nicat.view.wizard.NICATWizard.open(NICATWizard.java:70) 
at org.nicholding.nicat.controller.Controller.actionMenuFileImportData(Controller.java:98) 
at org.nicholding.nicat.view.MainWindow$ImportDataListener.widgetSelected(MainWindow.java:250) 
at org.eclipse.swt.widgets.TypedListener.handleEvent(Unknown Source) 
at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source) 
at org.eclipse.swt.widgets.Display.sendEvent(Unknown Source) 
at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source) 
at org.eclipse.swt.widgets.Display.runDeferredEvents(Unknown Source) 
at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source) 
at org.nicholding.nicat.Main.main(Main.java:70) 

我想不通的問題是什麼。任何幫助,將不勝感激。

+1

表有什麼價值?,btw,根據doc,columnname(最後一個參數)不能爲空https://docs.oracle.com/javase/7/docs/api/java/sql/DatabaseMetaData.html#getColumns (java.lang.String,%20java.lang.String,%20java.lang.String,%20java.lang.String) –

+0

使用與您的oracle版本相匹配的JDBC驅動程序 –

+0

我使用匹配的版本 – user1723583

回答

-1

這是因爲您的表名包含此字符:'/',請嘗試轉義表whoes名稱包含此字符。