System Exception on command line when using /ignore switch
BStrappazzon
Posts: 1 New member
Hello Redgate team,
We are currently implement Schema Compare for oracle to ease our deploiement process. We use it in command line scheduled by Jenkins.
We successfully managed to compare our code base on the file system with the database and generate reports and deployment script
This command line works
As soon as we add /ignore /storage or /behavior in the command line then the comparison fails. Executing the following command :
gives this error :
Activating verbose loglevel, I get the following exception in the log file
Do you have any idea on how I can solve this?
Is there something wrong on my command or is it a bug on the command line?
Thanks for your help
Benjamin
We are currently implement Schema Compare for oracle to ease our deploiement process. We use it in command line scheduled by Jenkins.
We successfully managed to compare our code base on the file system with the database and generate reports and deployment script
This command line works
"C:\Program Files\Red Gate\Schema Compare for Oracle 4\SCO.exe" /source .\{MY_SCHEMA} /target MY_SCHEMA/passwd@my.oracledb.com:1521/service{MY_SCHEMA} /report:.\report_scripts\report.html /scriptfile:.\report_scripts\scriptfile.sql /filter:.\Filter.scpf /indirect
As soon as we add /ignore /storage or /behavior in the command line then the comparison fails. Executing the following command :
"C:\Program Files\Red Gate\Schema Compare for Oracle 4\SCO.exe" /source .\{MY_SCHEMA} /target MY_SCHEMA/passwd@my.oracledb.com:1521/service{MY_SCHEMA} /report:.\report_scripts\report.html /scriptfile:.\report_scripts\scriptfile.sql /filter:.\Filter.scpf /indirect /storage:all
gives this error :
Reading dependency information Registering database one Registering database two Error: One or more errors occurred. Unexpected error: Comparison failed Comparison failed System.Exception at RedGate.Oracle.SchemaCompare.CommandLine.Program.RunComparison(IUsageHelper usageHelper, IDataSource source, IDataSource target, SchemaMapping schemaMapping, Optio options, ISchemaComparisonState& state) at RedGate.Oracle.SchemaCompare.CommandLine.Program.Main(String[] cmdLineargs)
Activating verbose loglevel, I get the following exception in the log file
17:13:44.449|Fatal |TaskRunner |15 |System.AggregateException: One or more errors occurred. ---> System.InvalidCastException: Unable to cast object of type 'System.DBNull' to type 'System.String'. at RedGate.Oracle.SchemaCompare.ObjectModel.DatabaseFactory.#Wlh(IScriptExecutor #vIc) at RedGate.Oracle.SchemaCompare.ObjectModel.DatabaseFactory.#E9Pe.#EjVe(IScriptExecutor #9Z) at RedGate.Oracle.SchemaCompare.ObjectModel.DatabaseFactory.#mUle[#NrPb](IScriptExecutor #vIc, Func`2 #sxPb) at RedGate.Oracle.SchemaCompare.ObjectModel.DatabaseFactory.#mUle(IScriptExecutor #vIc, Action`1 #sxPb) at RedGate.Oracle.SchemaCompare.ObjectModel.DatabaseFactory.#HT0e.#FjVe() at System.Threading.Tasks.Task.Execute() --- End of inner exception stack trace --- at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout, CancellationToken cancellationToken) at RedGate.Oracle.SchemaCompare.ObjectModel.DatabaseFactory.Populate() ---> (Inner Exception #0) System.InvalidCastException: Unable to cast object of type 'System.DBNull' to type 'System.String'. at RedGate.Oracle.SchemaCompare.ObjectModel.DatabaseFactory.#Wlh(IScriptExecutor #vIc) at RedGate.Oracle.SchemaCompare.ObjectModel.DatabaseFactory.#E9Pe.#EjVe(IScriptExecutor #9Z) at RedGate.Oracle.SchemaCompare.ObjectModel.DatabaseFactory.#mUle[#NrPb](IScriptExecutor #vIc, Func`2 #sxPb) at RedGate.Oracle.SchemaCompare.ObjectModel.DatabaseFactory.#mUle(IScriptExecutor #vIc, Action`1 #sxPb) at RedGate.Oracle.SchemaCompare.ObjectModel.DatabaseFactory.#HT0e.#FjVe() at System.Threading.Tasks.Task.Execute()<---
Do you have any idea on how I can solve this?
Is there something wrong on my command or is it a bug on the command line?
Thanks for your help
Benjamin
Best Answer
-
Eddie D Posts: 1,803 Rose Gold 5Hi Benjamin
Thank you for your forum post. I believe that I have answered this question in Support Ticket #103781.
The fact that the error occurs when adding the /storage:all switch to your syntax you experience the reported problem makes me suspect that you need to set the default behavior and ignore options.
Reviewing the two commands you are using, the first does not include any of the following 3 switches:
/behavior: , /ignore: and /storage:
The comparison engine will use the default options:
/behavior:scriptheader /behavior:detectcolumnrenames
/ignore:slowdependencies /ignore:dependentobjects /ignore:whitespace /ignore:doublequotes /ignore:sequencevalue /ignore:storage /ignore:mviewvalue
By specifying the /storage:a the default no longer apply.
Please run your command line syntax as follows with all the above switches added except for the /ignore:storage to resolve the problem.
https://documentation.red-gate.com/sco4/using-the-command-line/command-line-switches"C:\Program Files\Red Gate\Schema Compare for Oracle 4\SCO.exe" /source .\{MY_SCHEMA} /target MY_SCHEMA/passwd@my.oracledb.com:1521/service{MY_SCHEMA} /report:.\report_scripts\report.html /scriptfile:.\report_scripts\scriptfile.sql /filter:.\Filter.scpf /indirect /behavior:scriptheader /behavior:detectcolumnrenames /ignore:slowdependencies /ignore:dependentobjects /ignore:whitespace /ignore:doublequotes /ignore:sequencevalue /ignore:mviewvalue /storage:all
Many Thanks
Eddie