Skip to Main Content

Oracle Forms

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!

Error FRM-40733 appears when a new columns is added to a TYPE in procedure

Amir KhanOct 6 2008 — edited Oct 7 2008
Hi Everyone,

We're using oracle forms 10.1.2.02 and database 10g.

We have an oracle form with a "Data Block" having "Query Data Source" as "Procedure". The procedure is part of a database package.

In package specs we have defined a TYPE and a procedure e.g.

TYPE my_type IS RECORD (
a varchar2(30)
, b number
, c varchar2(240)
, d varchar2(1)
, e varchar2(1)
);

TYPE my_type_t IS TABLE OF my_type
INDEX BY BINARY_INTEGER;

PROCEDURE my_user_rec(p_table IN OUT my_type_t);

In package body some variables and the procedure is defined:

--global variables (whose values are set in some other procedures in the package body)
l_a varchar2(30);
l_b number
l_c varchar2(240)
l_d varchar2(1)
l_e varchar2(1)

PROCEDURE my_user_rec(p_table IN OUT my_type_t) IS
l_array_count PLS_INTEGER := 0;
BEGIN
//other logic such as loops, variable increments etc
...
...
...
l_array_count := l_array_count + 1;
p_table (l_array_count).a := l_a;
p_table (l_array_count).b := l_b;
p_table (l_array_count).c := l_c;
p_table (l_array_count).d := l_d;
p_table (l_array_count).e := l_e;
...
...
...
END;

Now we have a new requirement to add another column to this type and procedure. When I add this new column to the type, an error message starts appearing when execute_query to the data block is executed, "FRM-40733 PL/SQL built-in PLSQL_TABLE.POPULATE_BLOCK failed".

Following changes have been made:

1. I added a new column "NEW_COL" to the data block in form, with database column = Yes and column name = NEW_COL.

2. Added a new col to the type:
TYPE my_type IS RECORD (
a varchar2(30)
, b number
, c varchar2(240)
, d varchar2(1)
, e varchar2(1)
, new_col varchar2(1)
);

and added the following to my package and procedure
--global var
l_new_col varchar2(1);

--statement in procedure
p_table (l_array_count).new_col := l_new_col;

Please note the error appears when a new column is added to the TYPE. Even if I comment out the statment in procedure or delete the new column in my Data Block, the error still appears. But if I comment out the new_col statment in TYPE the error is not displayed but obviously without the new requirment fulfilled.

I think form is unable to create the mapping between this new_col and the data block column.

Can anyone please suggest what's happening and how to fix it?

Thanks,

Amir
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Nov 4 2008
Added on Oct 6 2008
1 comment
1,726 views