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.

ci/cd project stage command error when having some special character

khaled SharafalddenJan 16 2025 — edited Jan 16 2025

It looks like during the project stage process in SQLcl, related to an issue with JSON parsing while reading certain characters in the SQL file. Specifically, the error is being triggered by an escape sequence in the SQL query

founded sql code:-  if ora_dict_obj_name like 'SYS\_PLSQL\_%' escape '\' then
ERROR: An error has occurred processing your request:
Unrecognized character escape '_' (code 95)
at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 1, column: 890] (through reference chain: oracle.dbtools.extension.project.commands.stage.objectclasses.SrcSnapShot["sxml"])
oracle.dbtools.extension.project.core.exceptions.ChangelogGenerationException: Unrecognized character escape '_' (code 95)
at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 1, column: 890] (through reference chain: oracle.dbtools.extension.project.commands.stage.objectclasses.SrcSnapShot["sxml"])
       at oracle.dbtools.extension.project.core.utils.GitUtils.diffBranches(GitUtils.java:352)
       at oracle.dbtools.extension.project.commands.stage.StageCommand.run(StageCommand.java:103)
       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 95)
at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 1, column: 890] (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:316)
       ... 13 more
Caused by: com.fasterxml.jackson.core.JsonParseException: Unrecognized character escape '_' (code 95)
at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 1, column: 890]
       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 

and after updating the code with

ora_dict_obj_name like 'SYS\\_PLSQL\\_%' escape '\\'

project stage successfully updated so, as i think project export command should replace this special character

Kind regards,

khalid

Comments

BluShadow Mar 18 2024

Oracle support documents are available to paying customers through the support portal: support.oracle.com

If you are not a paying customer then I'm afraid you won't have access to the document, and it is a breach of any customer's agreement with Oracle to supply such support documents to others.

1 - 1

Post Details

Added on Jan 16 2025
1 comment
89 views