Skip to content

OCIError: ORA-01008: not all variables bound when calling procedure with a large PL/SQL record as the input parameter #131

@cfanpnk

Description

@cfanpnk

Here is my ruby code:

    interface_lines_rec = {:ibtxn_interface_line_id => 123,
                           :ib_instance_id => 10004389,
                           :serial_number =>  'F40164',
                           :inventory_item_id => 158041,
                           :order_line_id => 1234
    }
    p plsql.nics_ibtxn_util.update_ib_instance(interface_lines_rec)

It's simply calling a procedure with one input parameter, which is a PL/SQL record:

 PROCEDURE update_ib_instance(p_ibtxn_interface_lines_rec   IN     t_ibtxn_interface_lines_rec)

The PL/SQL record happens to be a huge one....

TYPE t_ibtxn_interface_lines_rec IS RECORD (
     ibtxn_interface_line_id        NUMBER,
     ibtxn_interface_id             NUMBER,
     order_line_id                  NUMBER,
     order_date                     NUMBER,
     ship_from_org_id               NUMBER,
     sold_to_party_id               NUMBER,
     sold_to_cust_account_id        NUMBER,
     ship_to_org_id                 NUMBER,
     ship_to_org_party_id           NUMBER,
     ship_to_org_cust_account_id    NUMBER,
     ship_to_org_party_site_id      NUMBER,
     bill_to_org_id                 NUMBER,
     bill_to_org_party_id           NUMBER,
     bill_to_org_cust_account_id    NUMBER,
     installed_at_party_id          NUMBER,
     installed_at_party_site_id     NUMBER,
     sold_to_contact_party_id       NUMBER,
     ship_to_contact_party_id       NUMBER,
     bill_to_contact_party_id       NUMBER,
     inventory_item_id              NUMBER,
     part_number                    NUMBER,
     serialized_item                NUMBER,
     serial_number                  NUMBER,
     plan_level                     NUMBER,
     sort_order                     NUMBER,
     gen_object_id                  NUMBER,
     mtl_completion_date            NUMBER,
     part_of_order                  NUMBER,
     pto_order                      NUMBER,
     bom_explosion                  NUMBER,
     serial_number_assigned         NUMBER,
     parent_ibtxn_interface_line_id NUMBER,
     ib_instance_id                 NUMBER,
     ib_instance_status             NUMBER,
     ib_active_start_date           NUMBER,
     ib_active_end_date             NUMBER,
     ib_last_oe_order_line_id       NUMBER,
     ib_location_id                 NUMBER,
     ib_install_location_id         NUMBER,
     ib_owner_party_id              NUMBER,
     ib_owner_party_account_id      NUMBER,
     ib_sn_correct                  NUMBER,
     ib_rel_correct                 NUMBER,
     new_ib_instance_id             NUMBER,
     new_ib_sn_corrected            NUMBER,
     new_ib_rel_created             NUMBER,
     new_ib_contacts_created        NUMBER,
     ib_instance_fix_status         NUMBER,
     ib_instance_error_message      NUMBER,
     parent_order_line_id           NUMBER);

When I run the ruby code, I will always get this error message:

     OCIError:
       ORA-01008: not all variables bound
     # stmt.c:243:in oci8lib_240.bundle
     # ./spec/ibic.rb:125:in `block (2 levels) in <top (required)>'

It is obviously a bug. When I reduce the size of the PL/SQL, the error will not show up. Any idea where I can start debugging? I've spent days on this bug but no progress yet.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions