[ 
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.

Reply via email to