Toad World® Forums

Issues with filter query while executing schema diff from command line

Hi,

I am trying to automate and execute a schema diff on Toad for Oracle 13.2 via commandline in windows.
The commandline execution is working but it is fetching all the differences
i.e

  1. the differences in the source schema which are not present on the target schema
  2. the differences in the target schema which are not present on the source schema
  3. Objects in Both with Differences

All these differences are fetched in the output file, leading to a lot of unwanted data in the final output.

I want to filter out only the differences in the Source schema which is not present in the target schema,
but i am unable to add a proper filter query via the ini properties file.
Could someone please help/guide me as to what settings have to be set in the .ini properties file, so that
i can get the proper filtered output via the command line execution.

In short, the filter has to only fetch the differences in the source schema which are not present on the target schema in the final output file.

Thanks in advance!!

That's possible using the GUI - you can uncheck the boxes shown here to exclude these objects from the sync script.

image

But for command line, the closest thing we have to what you're asking for is an "exclusion file", where you can specify which objects to exclude. Unfortunately, with the exclusion file, there is no way to say "only show me objects with differences".

You can make an exclusion file based on uncheck items like this:

The file contains instructions on how to modify it with wildcards, etc.

After the file is created, you can specify it here:

I will add a way in version 14.2 to exclude "only objects in source", "only objects in target", or "objects with differences" in the exclusion file.

1 Like

Hi John,

Thanks a ton for the quick reply.
While trying to create the exclusion file from Toad GUI , I noticed that
The Format of the .sce file is :
Table:Table_name
Index:Index_name
Column:Column_name

If there is a difference for this table in the source schema which is not present in the target schema, then I suppose the exclusion file
will not show this as well, if we execute this script from command line, which would be incorrect for my final output data.
Also, I noticed that the wildcard for the exclusion file : TEST -> which is supposed to ignore all objects containing the word TEST is not filtering it out as expected.

Are there any other alternative methods I could possibly try in the exclusion file format, or could you please let me know if I am making a mistake somewhere.

Thank you for your help!!

If you can update to 14.1, do so. Then you will be able to download and use the 14.2 beta.
I'll add a change in the next week or so to 14.2 beta, that will allow you to just exclude the "Source Only" and "Target Only" items, without having to thing about object names.

I'll test the wildcards and fix it if it's still broken. Maybe that was a bug in 13.2. I don't remember.

-John

1 Like

Wildcards work for me in 13.1 and the current version:

I had this line in my sce file and it filtered out all objects that contained the letters DD:

*DD*

If you had anything else on that line besides *TEST*, remove it.