[seasar-dotnet:538] DBFlute:Oracle の日本語テーブルの SQL エラー回避方法はありますか
小林貴生
[E-MAIL ADDRESS DELETED]
2007年 7月 20日 (金) 12:33:13 JST
初めまして、小林と申します。
ご質問がありまして、メールさせていただきました。
現状、DBFlute 0.5.3 を使用し、
C#用に、ソースを生成したいと考えております。
環境:
OS WindowsXP SP2
JDK 5.0.12
ANT 1.7.0
今、困っているのは、Oracleで日本語を含むテーブルに対して
jdbc.bat がうまく行かないことです。
もしかして、DBFlute 0.5.3 のこれの現象なのかなと思っているのですが、やはりそうでしょうか。
> {BUG}
> [DBFLUTE-116] {Java/C#}: OracleでTable名が日本語の場合にSQLExceptionが発生してしまうのを修正すること。
エラーは、こんな感じです。
2007-07-20 11:56:23,609 [main] INFO (TorqueJDBCTransformTask#generateXML():245) - ...Processing table: 社員
2007-07-20 11:56:23,796 [main] WARN (TorqueJDBCTransformTask#generateXML():328) - Failed to get unique column information! But continue...
java.sql.SQLException: コールに無効な引数があります。
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208)
at oracle.jdbc.OracleDatabaseMetaData.getIndexInfo(OracleDatabaseMetaData.java:3475)
at org.seasar.dbflute.helper.jdbc.metadata.DfUniqueKeyHandler.getUniqueColumnNameList(DfUniqueKeyHandler.java:107)
at org.apache.torque.task.TorqueJDBCTransformTask.getUniqueColumnNameList(TorqueJDBCTransformTask.java:459)
at org.apache.torque.task.TorqueJDBCTransformTask.generateXML(TorqueJDBCTransformTask.java:326)
at org.apache.torque.task.TorqueJDBCTransformTask.doExecute(TorqueJDBCTransformTask.java:180)
at org.seasar.dbflute.task.bs.DfAbstractTask.execute(DfAbstractTask.java:69)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:357)
at org.apache.tools.ant.Target.performTasks(Target.java:385)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
at org.apache.tools.ant.Project.executeTarget(Project.java:1298)
at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
at org.apache.tools.ant.Main.runBuild(Main.java:698)
at org.apache.tools.ant.Main.startAnt(Main.java:199)
at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)
同名のテーブルを、
Oracle8i、Oracle9i にも作ってやってみましたが同じ結果でした。
力業でも良いので、このエラーを何とか回避する方法はないでしょうか?。
(今なら、日本語のテーブル名なんて作らないんですが、なにぶん昔に作ったテーブルなもので...)
以上、どなたかおわかりになる方、アドバイスをお願いしたいです。
小林
seasar-dotnet メーリングリストの案内