[
https://issues.apache.org/jira/browse/DDLUTILS-238?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12668455#action_12668455
]
Markus Böing commented on DDLUTILS-238:
---------------------------------------
Thanks for the reply.
At first, here is the console output related to the task's verbosity level
"DEBUG" (running ant without -debug)
<stdout-task-verbosity>
D:\Apache-ant-1.7.1\bin>ant.bat -buildfile
D:\Entwicklung\apache-ddlutils\DatabaseToDdl\Oracle\OracleDbToDdl.xml
Buildfile: D:\Entwicklung\apache-ddlutils\DatabaseToDdl\Oracle\OracleDbToDdl.xml
database-dump:
[databaseToDdl] Borrowed connection
org.apache.commons.dbcp.poolableconnect...@1d80e6d from data source
[databaseToDdl] Returning connection
org.apache.commons.dbcp.poolableconnect...@1d80e6d to data source.
[databaseToDdl] Remaining connections: None
[databaseToDdl] Written schema to
D:\Entwicklung\apache-ddlutils\DatabaseToDdl\Oracle\kampdwh3-schema.xml
[databaseToDdl] Borrowed connection
org.apache.commons.dbcp.poolableconnect...@1d80e6d from data source
[databaseToDdl] Returning connection
org.apache.commons.dbcp.poolableconnect...@1d80e6d to data source.
[databaseToDdl] Remaining connections: None
BUILD FAILED
D:\Entwicklung\apache-ddlutils\DatabaseToDdl\Oracle\OracleDbToDdl.xml:25:
java.sql.SQLException: ORA-01424: missing or illegal character following the
escape character
Total time: 2 minutes 41 seconds
D:\Apache-ant-1.7.1\bin>
</stdout-task-verbosity>
Obviously the schema file was written succesfully which I can confirm as the
kampdwh3-schema.xml has all the metadata.
Here comes the stacktrace-part of the debug-output (running the project again
with ant -debug). The whole debug output is in the attached file.
<log-stacktrace-part>
...
[databaseToDdl] Returning connection
org.apache.commons.dbcp.poolableconnect...@11a64ed to data source.
[databaseToDdl] Remaining connections: None
Finding class org.apache.commons.lang.exception.ExceptionUtils
Loaded from
D:\Entwicklung\apache-ddlutils\DatabaseToDdl\Oracle\lib\lib\commons-lang-2.1.jar
org/apache/commons/lang/exception/ExceptionUtils.class
Class org.apache.commons.lang.exception.ExceptionUtils loaded from ant loader
(parentFirst)
Class java.lang.NoSuchFieldException loaded from parent loader (parentFirst)
BUILD FAILED
D:\Entwicklung\apache-ddlutils\DatabaseToDdl\Oracle\OracleDbToDdl.xml:26:
java.sql.SQLException: ORA-01424: missing or illegal character following the
escape character
at org.apache.ddlutils.task.Command.handleException(Command.java:81)
at
org.apache.ddlutils.task.WriteDataToFileCommand.execute(WriteDataToFileCommand.java:94)
at
org.apache.ddlutils.task.DatabaseTaskBase.executeCommands(DatabaseTaskBase.java:337)
at
org.apache.ddlutils.task.DatabaseTaskBase.execute(DatabaseTaskBase.java:365)
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:597)
at
org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
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:1337)
at org.apache.tools.ant.Project.executeTarget(Project.java:1306)
at
org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
at org.apache.tools.ant.Project.executeTargets(Project.java:1189)
at org.apache.tools.ant.Main.runBuild(Main.java:758)
at org.apache.tools.ant.Main.startAnt(Main.java:217)
at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)
Caused by: org.apache.ddlutils.DatabaseOperationException:
java.sql.SQLException: ORA-01424: missing or illegal character following the
escape character
at
org.apache.ddlutils.platform.PlatformImplBase.readModelFromDatabase(PlatformImplBase.java:1891)
at
org.apache.ddlutils.platform.PlatformImplBase.readModelFromDatabase(PlatformImplBase.java:1869)
at
org.apache.ddlutils.io.DatabaseDataIO.writeDataToXML(DatabaseDataIO.java:359)
at
org.apache.ddlutils.io.DatabaseDataIO.writeDataToXML(DatabaseDataIO.java:306)
at
org.apache.ddlutils.task.WriteDataToFileCommand.execute(WriteDataToFileCommand.java:88)
... 19 more
Caused by: java.sql.SQLException: ORA-01424: missing or illegal character
following the escape character
at
oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:745)
at
oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:219)
at
oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:970)
at
oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1072)
at
oracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPreparedStatement.java:854)
at
oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1154)
at
oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3370)
at
oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3415)
at
oracle.jdbc.driver.OracleDatabaseMetaData.getColumns(OracleDatabaseMetaData.java:273)
at
org.apache.ddlutils.platform.DatabaseMetaDataWrapper.getColumns(DatabaseMetaDataWrapper.java:148)
at
org.apache.ddlutils.platform.JdbcModelReader.readColumns(JdbcModelReader.java:747)
at
org.apache.ddlutils.platform.JdbcModelReader.readTable(JdbcModelReader.java:565)
at
org.apache.ddlutils.platform.oracle.Oracle8ModelReader.readTable(Oracle8ModelReader.java:102)
at
org.apache.ddlutils.platform.oracle.Oracle10ModelReader.readTable(Oracle10ModelReader.java:80)
at
org.apache.ddlutils.platform.JdbcModelReader.readTables(JdbcModelReader.java:516)
at
org.apache.ddlutils.platform.JdbcModelReader.getDatabase(JdbcModelReader.java:472)
at
org.apache.ddlutils.platform.JdbcModelReader.getDatabase(JdbcModelReader.java:432)
at
org.apache.ddlutils.platform.PlatformImplBase.readModelFromDatabase(PlatformImplBase.java:1884)
... 23 more
--- Nested Exception ---
org.apache.ddlutils.DatabaseOperationException: java.sql.SQLException:
ORA-01424: missing or illegal character following the escape character
at
org.apache.ddlutils.platform.PlatformImplBase.readModelFromDatabase(PlatformImplBase.java:1891)
at
org.apache.ddlutils.platform.PlatformImplBase.readModelFromDatabase(PlatformImplBase.java:1869)
at
org.apache.ddlutils.io.DatabaseDataIO.writeDataToXML(DatabaseDataIO.java:359)
at
org.apache.ddlutils.io.DatabaseDataIO.writeDataToXML(DatabaseDataIO.java:306)
at
org.apache.ddlutils.task.WriteDataToFileCommand.execute(WriteDataToFileCommand.java:88)
at
org.apache.ddlutils.task.DatabaseTaskBase.executeCommands(DatabaseTaskBase.java:337)
at
org.apache.ddlutils.task.DatabaseTaskBase.execute(DatabaseTaskBase.java:365)
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:597)
at
org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
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:1337)
at org.apache.tools.ant.Project.executeTarget(Project.java:1306)
at
org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
at org.apache.tools.ant.Project.executeTargets(Project.java:1189)
at org.apache.tools.ant.Main.runBuild(Main.java:758)
at org.apache.tools.ant.Main.startAnt(Main.java:217)
at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)
Caused by: java.sql.SQLException: ORA-01424: missing or illegal character
following the escape character
at
oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:745)
at
oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:219)
at
oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:970)
at
oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1072)
at
oracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPreparedStatement.java:854)
at
oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1154)
at
oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3370)
at
oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3415)
at
oracle.jdbc.driver.OracleDatabaseMetaData.getColumns(OracleDatabaseMetaData.java:273)
at
org.apache.ddlutils.platform.DatabaseMetaDataWrapper.getColumns(DatabaseMetaDataWrapper.java:148)
at
org.apache.ddlutils.platform.JdbcModelReader.readColumns(JdbcModelReader.java:747)
at
org.apache.ddlutils.platform.JdbcModelReader.readTable(JdbcModelReader.java:565)
at
org.apache.ddlutils.platform.oracle.Oracle8ModelReader.readTable(Oracle8ModelReader.java:102)
at
org.apache.ddlutils.platform.oracle.Oracle10ModelReader.readTable(Oracle10ModelReader.java:80)
at
org.apache.ddlutils.platform.JdbcModelReader.readTables(JdbcModelReader.java:516)
at
org.apache.ddlutils.platform.JdbcModelReader.getDatabase(JdbcModelReader.java:472)
at
org.apache.ddlutils.platform.JdbcModelReader.getDatabase(JdbcModelReader.java:432)
at
org.apache.ddlutils.platform.PlatformImplBase.readModelFromDatabase(PlatformImplBase.java:1884)
... 23 more
Total time: 2 minutes 46 seconds
</log-stacktrace-part>
I don't know if got you right. Did you expect the relavant DDL/DML in the
stacktrace? If not, how/where can I get it?
Any ideas?
Kind regards and thanks in advance
Markus
> java.sql.SQLException: ORA-01424 missing or illegal character following the
> escape character
> --------------------------------------------------------------------------------------------
>
> Key: DDLUTILS-238
> URL: https://issues.apache.org/jira/browse/DDLUTILS-238
> Project: DdlUtils
> Issue Type: Bug
> Components: Core - Oracle
> Affects Versions: 1.0
> Environment: Client: win xp, Apache-ant-1.7.1, jdk 1.6.0,
> DdlUtils-1.0, ojdbc14.jar for oracle 10.2.0.4 | Server: Sun 15k, Solaris,
> Oracle 10.2.0.4
> Reporter: Markus Böing
> Assignee: Thomas Dudziak
> Attachments: log.txt
>
>
> The schema.xml was written completely and correctly but when it comes to
> extracting the data, this error occures:
> java.sql.SQLException: ORA-01424 missing or illegal character following the
> escape character
> If you have a where clause with the like operator and use the ESCAPE
> expression for example like
> >where owner LIKE 'SOME-OWNER-SUBSTRING' ESCAPE '/'<
> the character after the escape character in SOME-OWNER-SUBSTRING _MUST_ be
> one of % or _ to evaluate % or _ literally.
> I've tried different task-parameters like with/without modelname,
> usedelimitedsqlidentifiers true or without,only certain tabletypes but all
> with the same result.
> This is my ant file:
> <project name="MyProject" default="database-dump" basedir=".">
> <description>
> Oracle to DDL
> </description>
> <property name="database-dump" location="database-dump"/>
> <path id="runtime-classpath">
> <fileset dir="lib">
> <include name="**/*.jar"/>
> <include name="**/*.zip"/>
> </fileset>
> </path>
> <target name="database-dump" description="Oracle10-SCHEMA-Dump">
> <taskdef name="databaseToDdl"
> classname="org.apache.ddlutils.task.DatabaseToDdlTask">
> <classpath refid="runtime-classpath"/>
> </taskdef>
> <databaseToDdl modelname="SCHEMA" schemapattern="SCHEMA"
> databasetype="oracle10" verbosity="DEBUG">
> <database url="jdbc:oracle:thin:@HOSTIP:1521:SID"
> driverClassName="oracle.jdbc.driver.OracleDriver"
> username="SCHEMA"
> password="PASS"/>
> <writeSchemaToFile outputFile="schema.xml"/>
> <writeDataToFile outputFile="data.xml"/>
> </databaseToDdl>
> </target>
> </project>
> Thanks in advance
> Markus
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.