Skip to Main Content

SQLcl

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Interested in getting your voice heard by members of the Developer Marketing team at Oracle? Check out this post for AppDev or this post for AI focus group information.

Unrecognized character escape error running project stage command

Chris KemmererDec 8 2024

I am getting the following error when running the project stage command. I am including the output from the command run with the debug option.

SQL> project stage -de
----- DISPLAY ARGUMENTS -----

BRANCH-NAME: null
Diffing Branches
result: diff DiffEntry[ADD src/database/example/triggers/example_documents_fix_name.sql]
ERROR: An error has occurred processing your request:
Unrecognized character escape ''' (code 39)
at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 1, column: 806] (through reference chain: oracle.dbtools.extension.project.commands.stage.objectclasses.SrcSnapShot["sxml"])
oracle.dbtools.extension.project.core.exceptions.ChangelogGenerationException: Unrecognized character escape ''' (code 39)
at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 1, column: 806] (through reference chain: oracle.dbtools.extension.project.commands.stage.objectclasses.SrcSnapShot["sxml"])
at oracle.dbtools.extension.project.core.utils.GitUtils.diffBranches(GitUtils.java:216)
at oracle.dbtools.extension.project.commands.stage.StageCommand.run(StageCommand.java:82)
at oracle.dbtools.extension.project.commands.handler.CommandHandler.StageCommand(CommandHandler.java:59)
at oracle.dbtools.extension.project.commands.handler.ProjectCommand.handleEvent(ProjectCommand.java:75)
at oracle.dbtools.raptor.newscriptrunner.util.command.ParsedCommandListener.handleEvent(ParsedCommandListener.java:62)
at oracle.dbtools.raptor.newscriptrunner.CommandRegistry.fireListeners(CommandRegistry.java:448)
at oracle.dbtools.raptor.newscriptrunner.ScriptRunner.lambda$run$0(ScriptRunner.java:236)
at oracle.dbtools.raptor.newscriptrunner.ScriptRunnerContext.runWithStoredContext(ScriptRunnerContext.java:833)
at oracle.dbtools.raptor.newscriptrunner.ScriptRunner.run(ScriptRunner.java:119)
at oracle.dbtools.raptor.newscriptrunner.ScriptExecutor.run(ScriptExecutor.java:364)
at oracle.dbtools.raptor.newscriptrunner.ScriptExecutor.run(ScriptExecutor.java:245)
at oracle.dbtools.raptor.scriptrunner.cmdline.SqlCli.processLine(SqlCli.java:1223)
at oracle.dbtools.raptor.scriptrunner.cmdline.SqlCli.runSqlcl(SqlCli.java:1401)
at oracle.dbtools.raptor.scriptrunner.cmdline.SqlCli.main(SqlCli.java:370)
Caused by: com.fasterxml.jackson.databind.JsonMappingException: Unrecognized character escape ''' (code 39)
at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 1, column: 806] (through reference chain: oracle.dbtools.extension.project.commands.stage.objectclasses.SrcSnapShot["sxml"])
at com.fasterxml.jackson.databind.JsonMappingException.wrapWithPath(JsonMappingException.java:402)
at com.fasterxml.jackson.databind.JsonMappingException.wrapWithPath(JsonMappingException.java:361)
at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.wrapAndThrow(BeanDeserializerBase.java:1937)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:312)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:177)
at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:342)
at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4905)
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3848)
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3816)
at oracle.dbtools.extension.project.commands.stage.objectclasses.SrcSnapShot.loadSnapShot(SrcSnapShot.java:39)
at oracle.dbtools.extension.project.commands.stage.objectclasses.DbDiffObject.<init>(DbDiffObject.java:55)
at oracle.dbtools.extension.project.core.utils.GitUtils.diffBranches(GitUtils.java:203)
... 13 more
Caused by: com.fasterxml.jackson.core.JsonParseException: Unrecognized character escape ''' (code 39)
at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 1, column: 806]
at com.fasterxml.jackson.core.JsonParser._constructReadException(JsonParser.java:2648)
at com.fasterxml.jackson.core.base.ParserBase._handleUnrecognizedCharacterEscape(ParserBase.java:1376)
at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._decodeEscaped(ReaderBasedJsonParser.java:2681)
at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._finishString2(ReaderBasedJsonParser.java:2201)
at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._finishString(ReaderBasedJsonParser.java:2174)
at com.fasterxml.jackson.core.json.ReaderBasedJsonParser.getText(ReaderBasedJsonParser.java:295)
at com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:42)
at com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:11)
at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:310)
... 21 more

This is the file the error occurred on. This is a trigger that has been running for years so as far as SQL is concerned it is valid.

CREATE OR REPLACE EDITIONABLE TRIGGER example_documents_fix_name BEFORE
    UPDATE ON example_documents
    REFERENCING
            NEW AS new
            OLD AS old
    FOR EACH ROW
declare
    cd_except EXCEPTION;
    originalname varchar2(256);
BEGIN
    originalname := :new.name;
    IF instr(:new.name,
             '/\\') > 0 THEN
        :new.name := substr(:new.name,
                            1,
                            instr(:new.name,
                                  '/'))
                     || substr(:new.name,
                               instr(:new.name,
                                     '\',
                                     -1) + 1);

        update program_eform_attachment
        set
            attachment_name = :new.name
        where
            attachment_name = originalname;

        update example_document_views
        set
            filename = :new.name
        where
            filename = originalname;

    END IF;

exception
    WHEN OTHERS THEN
        :new.name := originalname;
END;
/


-- sqlcl_snapshot {"hash":"de0c721f02971b90248987ef91a65e1ceecbaeff","type":"TRIGGER","name":"EXAMPLE_DOCUMENTS_FIX_NAME","schemaName":"EXAMPLE","sxml":"<TRIGGER  xmlns  =\"http://xmlns.oracle.com/ku\"  version  =\"1.0\"><SCHEMA>EXAMPLE</SCHEMA><NAME>EXAMPLE_DOCUMENTS_FIX_NAME</NAME><TRIGGER_TYPE>BEFORE</TRIGGER_TYPE><DML_EVENT><EVENT_LIST><EVENT_LIST_ITEM><EVENT>UPDATE</EVENT></EVENT_LIST_ITEM></EVENT_LIST><SCHEMA>EXAMPLE</SCHEMA><NAME>EXAMPLE_DOCUMENTS</NAME><REFERENCING><FOR_EACH_ROW></FOR_EACH_ROW></REFERENCING></DML_EVENT><PLSQL_BLOCK>declare  CD_EXCEPT  EXCEPTION  ;originalname  varchar2  (256  );BEGIN  originalname  :=:new  .name  ;IF  INSTR  (:NEW  .NAME  ,'/\\'  )>0  THEN  :NEW  .NAME  :=SUBSTR  (:NEW  .NAME  ,1  ,INSTR  (:NEW  .NAME  ,'/'  ))||SUBSTR  (:NEW  .NAME  ,INSTR  (:NEW  .NAME  ,'\'  ,-1  )+1  );update  PROGRAM_EFORM_ATTACHMENT  set  ATTACHMENT_NAME  =:new  .name  where  ATTACHMENT_NAME  =originalname  ;update  EXAMPLE_DOCUMENT_VIEWS  set  filename  =:new  .name  where  filename  =originalname  ;END  IF  ;exception  WHEN  OTHERS  THEN  :new  .name  :=originalname  ;END  ;</PLSQL_BLOCK></TRIGGER>"}
Comments
Post Details
Added on Dec 8 2024
4 comments
155 views