Sql Workbench/JI を使用して、csv ファイルを Virtuoso テーブルにロードします。NullPointerException
ファイルの数値フィールドが空の場合に表示されます。ターゲット テーブルには、空のフィールド用の null 許容列があります。エラーは次のとおりです。
java.lang.NullPointerException
java.lang.NullPointerException
at virtuoso.jdbc4.VirtuosoPreparedStatement.setObject(VirtuosoPreparedStatement.java:846)
at virtuoso.jdbc4.VirtuosoPreparedStatement.setObject(VirtuosoPreparedStatement.java:789)
at virtuoso.jdbc4.VirtuosoPreparedStatement.setObject(VirtuosoPreparedStatement.java:773)
at workbench.db.compare.BatchedStatement.setObject(BatchedStatement.java:120)
at workbench.db.importer.DataImporter.processRowData(DataImporter.java:1368)
at workbench.db.importer.DataImporter.insertRow(DataImporter.java:1297)
at workbench.db.importer.DataImporter.processRow(DataImporter.java:1054)
at workbench.db.importer.TextFileParser.processOneFile(TextFileParser.java:743)
at workbench.db.importer.AbstractImportFileParser.start(AbstractImportFileParser.java:390)
at workbench.db.importer.DataImporter.startImport(DataImporter.java:761)
at workbench.sql.wbcommands.WbImport.execute(WbImport.java:827)
at workbench.sql.StatementRunner.runStatement(StatementRunner.java:582)
at workbench.sql.BatchRunner.executeScript(BatchRunner.java:877)
at workbench.sql.BatchRunner.executeScript(BatchRunner.java:784)
at workbench.sql.BatchRunner.runFiles(BatchRunner.java:642)
at workbench.sql.BatchRunner.execute(BatchRunner.java:596)
at workbench.WbManager.runBatch(WbManager.java:1075)
at workbench.WbManager.startApplication(WbManager.java:929)
at workbench.WbManager.main(WbManager.java:1227)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at workbench.WbStarter.main(WbStarter.java:143)
Importing file 'C:\dev\csvFiles\CLASSIFICATION_CODE.csv' into table CLASSIFICATION_CODE
The file "C:\dev\csvFiles\CLASSIFICATION_CODE.csv" was not imported
私のテーブルには次の構造があります。
CREATE TABLE CLASSIFICATION_CODE
(
CLASSIFICATION_CODE_ID NUMERIC NOT NULL ,
CLASSIFICATION_CATEGORY VARCHAR(1) NOT NULL ,
CLASSIFICATION_PRIORITY NUMERIC
CONSTRAINT PK_CLASS_CODE PRIMARY KEY (CLASSIFICATION_CODE_ID)
);
アップロードしようとしているファイルの内容は次のとおりです (最後のフィールドは空です)。
CLASSIFICATION_CODE_ID,CLASSIFICATION_CATEGORY,CLASSIFICATION_PRIORITY
1,^3^,
2,^2^,
3,^2^,
4,^2^,
5,^2^,
6,^3^,
最後に、これはWbImport
インポートに使用するコマンドです。
WbImport -type=text
-file='C:\dev\csvFiles\CLASSIFICATION_CODE.csv'
-delimiter=,
-table=DB.PEST.CLASSIFICATION_CODE
-quoteChar=^
-badfile='C:\dev\csvFiles\rejected'
-emptyStringIsNull=false;
CLASSIFICATION_PRIORITY
列のフィールドが null になる可能性があることを Sql Workbench/J に伝えるパラメーターがありません。何か不足していますか?
私は使っている
Virtuoso Open Source Edition バージョン 7.2.4.3217-スレッド 2016 年 4 月 25 日現在 Win64 用にコンパイル済み (x86_64-generic-win-64)
virtjdbc4_2.jar
jdk1.8 用のパッチを適用した Virtuoso JDBC ドライバーは、このリンクにあります。