Fix records mismatch when doing bulk insert in TestReturningWithNullToZeroValues #24
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Fixes
TestReturningWithNullToZeroValues
.We previously declared the PL/SQL collection as follows:
TYPE t_records IS TABLE OF "users"%ROWTYPE;
However, this causes an error when the struct fields represent only a subset of the actual table.
The error is:
ORA-06550: line 17, column 41: PL/SQL: ORA-00913: too many values
For example, in TestReturningWithNullToZeroValues, the struct is declared as:
The struct user leverages the existing user table which is declared by the following struct:
To address this mismatch, the function
writeTableRecordCollectionDecl
was added.It generates a PL/SQL declaration where the record type matches only the fields present in the provided struct, avoiding the too many values error.
Here's an example of the generated PLSQL before the changes:
and after the changes:
Type of change
Please delete options that are not relevant.