If it attempts to perform a DML and the database rejects it, normally is because of inconsistency with the attempted DML and the records related to it. For example, attempting to delete a row which does not exist will fail with a database error. Aside from an Oracle GoldenGate bug, this usually points to target database inconsistencies. In other words, the target database is in a state that the customer did not expect it to be in. Determine why your target database is not in the state that you expect it to be.
Numerous reasons can cause this and below are some them. This list is by no means exhaustive. For a start you will need the replicat parameter file, report file and discard file. Report file: Contains all warnings, errors, tables that are already mapped, columns mapped or unmapped and all run time environment settings. Discard file: Display in detail the issue with mapping this table that generates the database error, the columns, its values, position of the record in the GoldenGate trail.
Query your target database based on the above data. Nevertheless one should be able to construct the appropriate query. This is to confirm that the replicat has indeed reported the correct database errors.
For example if the Oracle DB error was ORA which means no data found, your query should be selecting the row with the primary keys or keys as specified. Your query should return the same results as the replicat. The first thing to consider is whether you can ignore this error for now and resolve the situation later on. Then restart the replicat. Remove the duplicate mapping to fix the issue.
Summary, there are a lot of possibilities for a no data found error in a replicat process in GoldenGate. This could also depend on the type of replicat you are using. Many of them perform queries inside the database prior to actually performing a DML statement. The error you have can often result from a lack of permissions in the target database, or if you are using something like a database vault, or other technology which manipulates how DML is performed.
Stack Overflow for Teams — Collaborate and share knowledge with a private group. Create a free Team What is Teams? Notify me of new comments via email. Notify me of new posts via email. This site uses Akismet to reduce spam. Learn how your comment data is processed. July 13, October 18, Alex Lima. Replicat would not be able to find the row for doing the latter transaction. Share this: Email. Like this: Like Loading As the exception was handled, a row was inserted into the empresult table with the error message you specified.
When the exception is raised, the control jumps from the select statement to the exception handler routine. Any code after the Select will not get executed if an exception has been raised. But if you do have some code that needs to be executed after the select has been executed, irrespective of whether the select was successful or not, then you would need to nest the begin and end statements.
If it does not find one, then the error message is thrown to the screen.
0コメント