Skip to content

Support Oracle Database 18.3.0 or higher #187

@yahonda

Description

@yahonda

Summary

ruby-plsql CI has been running Oracle Database 11.2.0 XE. I'm going to run CI against newer versions of Oracle database and found many of ruby-plsql unit tests fail using Oracle Database 18.3.0.

Works fine

  • Oracle Database 11.2.0 XE
  • Oracle Database 12.1.0.2 EE
  • Oracle Database 12.2.0.1 EE

Many of unit tests fail

  • Oracle Database 18.3.0 EE
  • Oracle Database 18.4.0 XE
  • Oracle Database 19.3.0 EE

Actual results with Oracle Database 18.3.0 EE

$ bundle exec rspec
.................................F..........................................................................***...............................FFF.FFFFFFFFFFFFF.................FFFFFFF..FFFFFFFFFF......FFFFFFFFFFFFFFFFFFF..................................................................FFFFFF..............................................................................................................................................................

Pending: (Failures listed here are expected and do not affect your suite's status)

  1) Parameter type mapping / Function or procedure with XMLType parameters should process XMLType parameters
     # Skip until furtuer investigation for #114
     # ./spec/plsql/procedure_spec.rb:269

  2) Parameter type mapping / Function or procedure with XMLType parameters should work when passing a NULL value
     # Skip until furtuer investigation for #114
     # ./spec/plsql/procedure_spec.rb:275

  3) Parameter type mapping / Function or procedure with XMLType parameters should assign input parameter to putput parameter
     # Skip until furtuer investigation for #114
     # ./spec/plsql/procedure_spec.rb:280


Failures:

  1) Connection session information should get database version
     Failure/Error: expect(@conn.database_version).to eq DATABASE_VERSION.split(".").map { |n| n.to_i }

       expected: [10, 2, 0, 4]
            got: [18, 3, 0, 0]

       (compared using ==)
     # ./spec/plsql/connection_spec.rb:426:in `block (3 levels) in <top (required)>'

  2) Parameter type mapping / Function with record parameter should execute function with named parameter and return correct value
     Failure/Error: raise ArgumentError, "Wrong field name #{key.inspect} passed to PL/SQL record argument #{argument.inspect}" unless metadata

     ArgumentError:
       Wrong field name :employee_id passed to PL/SQL record argument :p_employee
     # ./lib/plsql/procedure_call.rb:345:in `block in record_assignment_sql_values_metadata'
     # ./lib/plsql/procedure_call.rb:342:in `each'
     # ./lib/plsql/procedure_call.rb:342:in `record_assignment_sql_values_metadata'
     # ./lib/plsql/procedure_call.rb:227:in `add_argument'
     # ./lib/plsql/procedure_call.rb:185:in `block in construct_sql'
     # ./lib/plsql/procedure_call.rb:184:in `each'
     # ./lib/plsql/procedure_call.rb:184:in `map'
     # ./lib/plsql/procedure_call.rb:184:in `construct_sql'
     # ./lib/plsql/procedure_call.rb:11:in `initialize'
     # ./lib/plsql/procedure.rb:265:in `new'
     # ./lib/plsql/procedure.rb:265:in `exec'
     # ./lib/plsql/schema.rb:185:in `method_missing'
     # ./spec/plsql/procedure_spec.rb:808:in `block (3 levels) in <top (required)>'

  3) Parameter type mapping / Function with record parameter should execute function with sequential parameter and return correct value
     Failure/Error: raise ArgumentError, "Wrong field name #{key.inspect} passed to PL/SQL record argument #{argument.inspect}" unless metadata

     ArgumentError:
       Wrong field name :employee_id passed to PL/SQL record argument :p_employee
     # ./lib/plsql/procedure_call.rb:345:in `block in record_assignment_sql_values_metadata'
     # ./lib/plsql/procedure_call.rb:342:in `each'
     # ./lib/plsql/procedure_call.rb:342:in `record_assignment_sql_values_metadata'
     # ./lib/plsql/procedure_call.rb:227:in `add_argument'
     # ./lib/plsql/procedure_call.rb:203:in `block in construct_sql'
     # ./lib/plsql/procedure_call.rb:200:in `each'
     # ./lib/plsql/procedure_call.rb:200:in `map'
     # ./lib/plsql/procedure_call.rb:200:in `construct_sql'
     # ./lib/plsql/procedure_call.rb:11:in `initialize'
     # ./lib/plsql/procedure.rb:265:in `new'
     # ./lib/plsql/procedure.rb:265:in `exec'
     # ./lib/plsql/schema.rb:185:in `method_missing'
     # ./spec/plsql/procedure_spec.rb:812:in `block (3 levels) in <top (required)>'

  4) Parameter type mapping / Function with record parameter should execute function with Hash parameter using strings as keys
     Failure/Error: raise ArgumentError, "Wrong field name #{key.inspect} passed to PL/SQL record argument #{argument.inspect}" unless metadata

     ArgumentError:
       Wrong field name "employee_id" passed to PL/SQL record argument :p_employee
     # ./lib/plsql/procedure_call.rb:345:in `block in record_assignment_sql_values_metadata'
     # ./lib/plsql/procedure_call.rb:342:in `each'
     # ./lib/plsql/procedure_call.rb:342:in `record_assignment_sql_values_metadata'
     # ./lib/plsql/procedure_call.rb:227:in `add_argument'
     # ./lib/plsql/procedure_call.rb:203:in `block in construct_sql'
     # ./lib/plsql/procedure_call.rb:200:in `each'
     # ./lib/plsql/procedure_call.rb:200:in `map'
     # ./lib/plsql/procedure_call.rb:200:in `construct_sql'
     # ./lib/plsql/procedure_call.rb:11:in `initialize'
     # ./lib/plsql/procedure.rb:265:in `new'
     # ./lib/plsql/procedure.rb:265:in `exec'
     # ./lib/plsql/schema.rb:185:in `method_missing'
     # ./spec/plsql/procedure_spec.rb:816:in `block (3 levels) in <top (required)>'

  5) Parameter type mapping / Function with record parameter should return empty table of records
     Failure/Error: case element_metadata[:data_type]

     NoMethodError:
       undefined method `[]' for nil:NilClass
     # ./lib/plsql/procedure.rb:213:in `block in ensure_tmp_tables_created'
     # ./lib/plsql/procedure.rb:210:in `each'
     # ./lib/plsql/procedure.rb:210:in `ensure_tmp_tables_created'
     # ./lib/plsql/procedure_call.rb:10:in `initialize'
     # ./lib/plsql/procedure.rb:265:in `new'
     # ./lib/plsql/procedure.rb:265:in `exec'
     # ./lib/plsql/package.rb:67:in `method_missing'
     # ./spec/plsql/procedure_spec.rb:826:in `block (3 levels) in <top (required)>'

  6) Parameter type mapping / Function with record parameter should return record return value
     Failure/Error: raise ArgumentError, "Wrong field name #{key.inspect} passed to PL/SQL record argument #{argument.inspect}" unless metadata

     ArgumentError:
       Wrong field name :employee_id passed to PL/SQL record argument :p_employee
     # ./lib/plsql/procedure_call.rb:345:in `block in record_assignment_sql_values_metadata'
     # ./lib/plsql/procedure_call.rb:342:in `each'
     # ./lib/plsql/procedure_call.rb:342:in `record_assignment_sql_values_metadata'
     # ./lib/plsql/procedure_call.rb:227:in `add_argument'
     # ./lib/plsql/procedure_call.rb:203:in `block in construct_sql'
     # ./lib/plsql/procedure_call.rb:200:in `each'
     # ./lib/plsql/procedure_call.rb:200:in `map'
     # ./lib/plsql/procedure_call.rb:200:in `construct_sql'
     # ./lib/plsql/procedure_call.rb:11:in `initialize'
     # ./lib/plsql/procedure.rb:265:in `new'
     # ./lib/plsql/procedure.rb:265:in `exec'
     # ./lib/plsql/schema.rb:185:in `method_missing'
     # ./spec/plsql/procedure_spec.rb:830:in `block (3 levels) in <top (required)>'

  7) Parameter type mapping / Function with record parameter should return record return value and output record parameter value
     Failure/Error: raise ArgumentError, "Wrong field name #{key.inspect} passed to PL/SQL record argument #{argument.inspect}" unless metadata

     ArgumentError:
       Wrong field name :employee_id passed to PL/SQL record argument :p_employee
     # ./lib/plsql/procedure_call.rb:345:in `block in record_assignment_sql_values_metadata'
     # ./lib/plsql/procedure_call.rb:342:in `each'
     # ./lib/plsql/procedure_call.rb:342:in `record_assignment_sql_values_metadata'
     # ./lib/plsql/procedure_call.rb:227:in `add_argument'
     # ./lib/plsql/procedure_call.rb:203:in `block in construct_sql'
     # ./lib/plsql/procedure_call.rb:200:in `each'
     # ./lib/plsql/procedure_call.rb:200:in `map'
     # ./lib/plsql/procedure_call.rb:200:in `construct_sql'
     # ./lib/plsql/procedure_call.rb:11:in `initialize'
     # ./lib/plsql/procedure.rb:265:in `new'
     # ./lib/plsql/procedure.rb:265:in `exec'
     # ./lib/plsql/schema.rb:185:in `method_missing'
     # ./spec/plsql/procedure_spec.rb:834:in `block (3 levels) in <top (required)>'

  8) Parameter type mapping / Function with record parameter should execute package function with parameter with record type defined in package
     Failure/Error: raise ArgumentError, "Wrong field name #{key.inspect} passed to PL/SQL record argument #{argument.inspect}" unless metadata

     ArgumentError:
       Wrong field name :employee_id passed to PL/SQL record argument :p_employee
     # ./lib/plsql/procedure_call.rb:345:in `block in record_assignment_sql_values_metadata'
     # ./lib/plsql/procedure_call.rb:342:in `each'
     # ./lib/plsql/procedure_call.rb:342:in `record_assignment_sql_values_metadata'
     # ./lib/plsql/procedure_call.rb:227:in `add_argument'
     # ./lib/plsql/procedure_call.rb:203:in `block in construct_sql'
     # ./lib/plsql/procedure_call.rb:200:in `each'
     # ./lib/plsql/procedure_call.rb:200:in `map'
     # ./lib/plsql/procedure_call.rb:200:in `construct_sql'
     # ./lib/plsql/procedure_call.rb:11:in `initialize'
     # ./lib/plsql/procedure.rb:265:in `new'
     # ./lib/plsql/procedure.rb:265:in `exec'
     # ./lib/plsql/package.rb:67:in `method_missing'
     # ./spec/plsql/procedure_spec.rb:838:in `block (3 levels) in <top (required)>'

  9) Parameter type mapping / Function with record parameter functions with record parameters having boolean attributes should execute function with record having boolean attribute (true)
     Failure/Error: raise ArgumentError, "Wrong field name #{key.inspect} passed to PL/SQL record argument #{argument.inspect}" unless metadata

     ArgumentError:
       Wrong field name :candidate_id passed to PL/SQL record argument :p_candidate
     # ./lib/plsql/procedure_call.rb:345:in `block in record_assignment_sql_values_metadata'
     # ./lib/plsql/procedure_call.rb:342:in `each'
     # ./lib/plsql/procedure_call.rb:342:in `record_assignment_sql_values_metadata'
     # ./lib/plsql/procedure_call.rb:227:in `add_argument'
     # ./lib/plsql/procedure_call.rb:203:in `block in construct_sql'
     # ./lib/plsql/procedure_call.rb:200:in `each'
     # ./lib/plsql/procedure_call.rb:200:in `map'
     # ./lib/plsql/procedure_call.rb:200:in `construct_sql'
     # ./lib/plsql/procedure_call.rb:11:in `initialize'
     # ./lib/plsql/procedure.rb:265:in `new'
     # ./lib/plsql/procedure.rb:265:in `exec'
     # ./lib/plsql/package.rb:67:in `method_missing'
     # ./spec/plsql/procedure_spec.rb:848:in `block (5 levels) in <top (required)>'

  10) Parameter type mapping / Function with record parameter functions with record parameters having boolean attributes procedure should return record with boolean attribute as output parameter (true)
      Failure/Error: raise ArgumentError, "Wrong field name #{key.inspect} passed to PL/SQL record argument #{argument.inspect}" unless metadata

      ArgumentError:
        Wrong field name :candidate_id passed to PL/SQL record argument :p_candidate
      # ./lib/plsql/procedure_call.rb:345:in `block in record_assignment_sql_values_metadata'
      # ./lib/plsql/procedure_call.rb:342:in `each'
      # ./lib/plsql/procedure_call.rb:342:in `record_assignment_sql_values_metadata'
      # ./lib/plsql/procedure_call.rb:227:in `add_argument'
      # ./lib/plsql/procedure_call.rb:203:in `block in construct_sql'
      # ./lib/plsql/procedure_call.rb:200:in `each'
      # ./lib/plsql/procedure_call.rb:200:in `map'
      # ./lib/plsql/procedure_call.rb:200:in `construct_sql'
      # ./lib/plsql/procedure_call.rb:11:in `initialize'
      # ./lib/plsql/procedure.rb:265:in `new'
      # ./lib/plsql/procedure.rb:265:in `exec'
      # ./lib/plsql/package.rb:67:in `method_missing'
      # ./spec/plsql/procedure_spec.rb:852:in `block (5 levels) in <top (required)>'

  11) Parameter type mapping / Function with record parameter functions with record parameters having boolean attributes function should return record with boolean attribute (true)
      Failure/Error: raise ArgumentError, "Wrong field name #{key.inspect} passed to PL/SQL record argument #{argument.inspect}" unless metadata

      ArgumentError:
        Wrong field name :candidate_id passed to PL/SQL record argument :p_candidate
      # ./lib/plsql/procedure_call.rb:345:in `block in record_assignment_sql_values_metadata'
      # ./lib/plsql/procedure_call.rb:342:in `each'
      # ./lib/plsql/procedure_call.rb:342:in `record_assignment_sql_values_metadata'
      # ./lib/plsql/procedure_call.rb:227:in `add_argument'
      # ./lib/plsql/procedure_call.rb:203:in `block in construct_sql'
      # ./lib/plsql/procedure_call.rb:200:in `each'
      # ./lib/plsql/procedure_call.rb:200:in `map'
      # ./lib/plsql/procedure_call.rb:200:in `construct_sql'
      # ./lib/plsql/procedure_call.rb:11:in `initialize'
      # ./lib/plsql/procedure.rb:265:in `new'
      # ./lib/plsql/procedure.rb:265:in `exec'
      # ./lib/plsql/package.rb:67:in `method_missing'
      # ./spec/plsql/procedure_spec.rb:856:in `block (5 levels) in <top (required)>'

  12) Parameter type mapping / Function with record parameter functions with record parameters having boolean attributes should execute function with record having boolean attribute (false)
      Failure/Error: raise ArgumentError, "Wrong field name #{key.inspect} passed to PL/SQL record argument #{argument.inspect}" unless metadata

      ArgumentError:
        Wrong field name :candidate_id passed to PL/SQL record argument :p_candidate
      # ./lib/plsql/procedure_call.rb:345:in `block in record_assignment_sql_values_metadata'
      # ./lib/plsql/procedure_call.rb:342:in `each'
      # ./lib/plsql/procedure_call.rb:342:in `record_assignment_sql_values_metadata'
      # ./lib/plsql/procedure_call.rb:227:in `add_argument'
      # ./lib/plsql/procedure_call.rb:203:in `block in construct_sql'
      # ./lib/plsql/procedure_call.rb:200:in `each'
      # ./lib/plsql/procedure_call.rb:200:in `map'
      # ./lib/plsql/procedure_call.rb:200:in `construct_sql'
      # ./lib/plsql/procedure_call.rb:11:in `initialize'
      # ./lib/plsql/procedure.rb:265:in `new'
      # ./lib/plsql/procedure.rb:265:in `exec'
      # ./lib/plsql/package.rb:67:in `method_missing'
      # ./spec/plsql/procedure_spec.rb:848:in `block (5 levels) in <top (required)>'

  13) Parameter type mapping / Function with record parameter functions with record parameters having boolean attributes procedure should return record with boolean attribute as output parameter (false)
      Failure/Error: raise ArgumentError, "Wrong field name #{key.inspect} passed to PL/SQL record argument #{argument.inspect}" unless metadata

      ArgumentError:
        Wrong field name :candidate_id passed to PL/SQL record argument :p_candidate
      # ./lib/plsql/procedure_call.rb:345:in `block in record_assignment_sql_values_metadata'
      # ./lib/plsql/procedure_call.rb:342:in `each'
      # ./lib/plsql/procedure_call.rb:342:in `record_assignment_sql_values_metadata'
      # ./lib/plsql/procedure_call.rb:227:in `add_argument'
      # ./lib/plsql/procedure_call.rb:203:in `block in construct_sql'
      # ./lib/plsql/procedure_call.rb:200:in `each'
      # ./lib/plsql/procedure_call.rb:200:in `map'
      # ./lib/plsql/procedure_call.rb:200:in `construct_sql'
      # ./lib/plsql/procedure_call.rb:11:in `initialize'
      # ./lib/plsql/procedure.rb:265:in `new'
      # ./lib/plsql/procedure.rb:265:in `exec'
      # ./lib/plsql/package.rb:67:in `method_missing'
      # ./spec/plsql/procedure_spec.rb:852:in `block (5 levels) in <top (required)>'

  14) Parameter type mapping / Function with record parameter functions with record parameters having boolean attributes function should return record with boolean attribute (false)
      Failure/Error: raise ArgumentError, "Wrong field name #{key.inspect} passed to PL/SQL record argument #{argument.inspect}" unless metadata

      ArgumentError:
        Wrong field name :candidate_id passed to PL/SQL record argument :p_candidate
      # ./lib/plsql/procedure_call.rb:345:in `block in record_assignment_sql_values_metadata'
      # ./lib/plsql/procedure_call.rb:342:in `each'
      # ./lib/plsql/procedure_call.rb:342:in `record_assignment_sql_values_metadata'
      # ./lib/plsql/procedure_call.rb:227:in `add_argument'
      # ./lib/plsql/procedure_call.rb:203:in `block in construct_sql'
      # ./lib/plsql/procedure_call.rb:200:in `each'
      # ./lib/plsql/procedure_call.rb:200:in `map'
      # ./lib/plsql/procedure_call.rb:200:in `construct_sql'
      # ./lib/plsql/procedure_call.rb:11:in `initialize'
      # ./lib/plsql/procedure.rb:265:in `new'
      # ./lib/plsql/procedure.rb:265:in `exec'
      # ./lib/plsql/package.rb:67:in `method_missing'
      # ./spec/plsql/procedure_spec.rb:856:in `block (5 levels) in <top (required)>'

  15) Parameter type mapping / Function with record parameter functions with record parameters having boolean attributes should execute function with record having boolean attribute ()
      Failure/Error: raise ArgumentError, "Wrong field name #{key.inspect} passed to PL/SQL record argument #{argument.inspect}" unless metadata

      ArgumentError:
        Wrong field name :candidate_id passed to PL/SQL record argument :p_candidate
      # ./lib/plsql/procedure_call.rb:345:in `block in record_assignment_sql_values_metadata'
      # ./lib/plsql/procedure_call.rb:342:in `each'
      # ./lib/plsql/procedure_call.rb:342:in `record_assignment_sql_values_metadata'
      # ./lib/plsql/procedure_call.rb:227:in `add_argument'
      # ./lib/plsql/procedure_call.rb:203:in `block in construct_sql'
      # ./lib/plsql/procedure_call.rb:200:in `each'
      # ./lib/plsql/procedure_call.rb:200:in `map'
      # ./lib/plsql/procedure_call.rb:200:in `construct_sql'
      # ./lib/plsql/procedure_call.rb:11:in `initialize'
      # ./lib/plsql/procedure.rb:265:in `new'
      # ./lib/plsql/procedure.rb:265:in `exec'
      # ./lib/plsql/package.rb:67:in `method_missing'
      # ./spec/plsql/procedure_spec.rb:848:in `block (5 levels) in <top (required)>'

  16) Parameter type mapping / Function with record parameter functions with record parameters having boolean attributes procedure should return record with boolean attribute as output parameter ()
      Failure/Error: raise ArgumentError, "Wrong field name #{key.inspect} passed to PL/SQL record argument #{argument.inspect}" unless metadata

      ArgumentError:
        Wrong field name :candidate_id passed to PL/SQL record argument :p_candidate
      # ./lib/plsql/procedure_call.rb:345:in `block in record_assignment_sql_values_metadata'
      # ./lib/plsql/procedure_call.rb:342:in `each'
      # ./lib/plsql/procedure_call.rb:342:in `record_assignment_sql_values_metadata'
      # ./lib/plsql/procedure_call.rb:227:in `add_argument'
      # ./lib/plsql/procedure_call.rb:203:in `block in construct_sql'
      # ./lib/plsql/procedure_call.rb:200:in `each'
      # ./lib/plsql/procedure_call.rb:200:in `map'
      # ./lib/plsql/procedure_call.rb:200:in `construct_sql'
      # ./lib/plsql/procedure_call.rb:11:in `initialize'
      # ./lib/plsql/procedure.rb:265:in `new'
      # ./lib/plsql/procedure.rb:265:in `exec'
      # ./lib/plsql/package.rb:67:in `method_missing'
      # ./spec/plsql/procedure_spec.rb:852:in `block (5 levels) in <top (required)>'

  17) Parameter type mapping / Function with record parameter functions with record parameters having boolean attributes function should return record with boolean attribute ()
      Failure/Error: raise ArgumentError, "Wrong field name #{key.inspect} passed to PL/SQL record argument #{argument.inspect}" unless metadata

      ArgumentError:
        Wrong field name :candidate_id passed to PL/SQL record argument :p_candidate
      # ./lib/plsql/procedure_call.rb:345:in `block in record_assignment_sql_values_metadata'
      # ./lib/plsql/procedure_call.rb:342:in `each'
      # ./lib/plsql/procedure_call.rb:342:in `record_assignment_sql_values_metadata'
      # ./lib/plsql/procedure_call.rb:227:in `add_argument'
      # ./lib/plsql/procedure_call.rb:203:in `block in construct_sql'
      # ./lib/plsql/procedure_call.rb:200:in `each'
      # ./lib/plsql/procedure_call.rb:200:in `map'
      # ./lib/plsql/procedure_call.rb:200:in `construct_sql'
      # ./lib/plsql/procedure_call.rb:11:in `initialize'
      # ./lib/plsql/procedure.rb:265:in `new'
      # ./lib/plsql/procedure.rb:265:in `exec'
      # ./lib/plsql/package.rb:67:in `method_missing'
      # ./spec/plsql/procedure_spec.rb:856:in `block (5 levels) in <top (required)>'

  18) Parameter type mapping / Function with table parameter should execute function with table of numbers type (defined inside package) parameter
      Failure/Error: case element_metadata[:data_type]

      NoMethodError:
        undefined method `[]' for nil:NilClass
      # ./lib/plsql/procedure.rb:213:in `block in ensure_tmp_tables_created'
      # ./lib/plsql/procedure.rb:210:in `each'
      # ./lib/plsql/procedure.rb:210:in `ensure_tmp_tables_created'
      # ./lib/plsql/procedure_call.rb:10:in `initialize'
      # ./lib/plsql/procedure.rb:265:in `new'
      # ./lib/plsql/procedure.rb:265:in `exec'
      # ./lib/plsql/package.rb:67:in `method_missing'
      # ./spec/plsql/procedure_spec.rb:1277:in `block (3 levels) in <top (required)>'

  19) Parameter type mapping / Function with table parameter should clear temporary tables after executing function with table of numbers type even if an error occurs in the package
      Failure/Error: case element_metadata[:data_type]

      NoMethodError:
        undefined method `[]' for nil:NilClass
      # ./lib/plsql/procedure.rb:213:in `block in ensure_tmp_tables_created'
      # ./lib/plsql/procedure.rb:210:in `each'
      # ./lib/plsql/procedure.rb:210:in `ensure_tmp_tables_created'
      # ./lib/plsql/procedure_call.rb:10:in `initialize'
      # ./lib/plsql/procedure.rb:265:in `new'
      # ./lib/plsql/procedure.rb:265:in `exec'
      # ./lib/plsql/package.rb:67:in `method_missing'
      # ./spec/plsql/procedure_spec.rb:1282:in `block (3 levels) in <top (required)>'

  20) Parameter type mapping / Function with table parameter should return table of numbers type (defined inside package)
      Failure/Error: case element_metadata[:data_type]

      NoMethodError:
        undefined method `[]' for nil:NilClass
      # ./lib/plsql/procedure.rb:213:in `block in ensure_tmp_tables_created'
      # ./lib/plsql/procedure.rb:210:in `each'
      # ./lib/plsql/procedure.rb:210:in `ensure_tmp_tables_created'
      # ./lib/plsql/procedure_call.rb:10:in `initialize'
      # ./lib/plsql/procedure.rb:265:in `new'
      # ./lib/plsql/procedure.rb:265:in `exec'
      # ./lib/plsql/package.rb:67:in `method_missing'
      # ./spec/plsql/procedure_spec.rb:1290:in `block (3 levels) in <top (required)>'

  21) Parameter type mapping / Function with table parameter should clear temporary tables after executing function with table of numbers type (defined inside package) parameter
      Failure/Error: case element_metadata[:data_type]

      NoMethodError:
        undefined method `[]' for nil:NilClass
      # ./lib/plsql/procedure.rb:213:in `block in ensure_tmp_tables_created'
      # ./lib/plsql/procedure.rb:210:in `each'
      # ./lib/plsql/procedure.rb:210:in `ensure_tmp_tables_created'
      # ./lib/plsql/procedure_call.rb:10:in `initialize'
      # ./lib/plsql/procedure.rb:265:in `new'
      # ./lib/plsql/procedure.rb:265:in `exec'
      # ./lib/plsql/package.rb:67:in `method_missing'
      # ./spec/plsql/procedure_spec.rb:1294:in `block (3 levels) in <top (required)>'

  22) Parameter type mapping / Function with table parameter should clear temporary tables when autocommit with table of numbers type (defined inside package) parameter
      Failure/Error: case element_metadata[:data_type]

      NoMethodError:
        undefined method `[]' for nil:NilClass
      # ./lib/plsql/procedure.rb:213:in `block in ensure_tmp_tables_created'
      # ./lib/plsql/procedure.rb:210:in `each'
      # ./lib/plsql/procedure.rb:210:in `ensure_tmp_tables_created'
      # ./lib/plsql/procedure_call.rb:10:in `initialize'
      # ./lib/plsql/procedure.rb:265:in `new'
      # ./lib/plsql/procedure.rb:265:in `exec'
      # ./lib/plsql/package.rb:67:in `method_missing'
      # ./spec/plsql/procedure_spec.rb:1303:in `block (3 levels) in <top (required)>'

  23) Parameter type mapping / Function with table parameter should execute function with table of records type (defined inside package) parameter
      Failure/Error: case element_metadata[:data_type]

      NoMethodError:
        undefined method `[]' for nil:NilClass
      # ./lib/plsql/procedure.rb:213:in `block in ensure_tmp_tables_created'
      # ./lib/plsql/procedure.rb:210:in `each'
      # ./lib/plsql/procedure.rb:210:in `ensure_tmp_tables_created'
      # ./lib/plsql/procedure_call.rb:10:in `initialize'
      # ./lib/plsql/procedure.rb:265:in `new'
      # ./lib/plsql/procedure.rb:265:in `exec'
      # ./lib/plsql/package.rb:67:in `method_missing'
      # ./spec/plsql/procedure_spec.rb:1310:in `block (3 levels) in <top (required)>'

  24) Parameter type mapping / Function with table parameter should execute function with table of records type (defined inside package and includes NVARCHAR columns) parameter
      Failure/Error: case element_metadata[:data_type]

      NoMethodError:
        undefined method `[]' for nil:NilClass
      # ./lib/plsql/procedure.rb:213:in `block in ensure_tmp_tables_created'
      # ./lib/plsql/procedure.rb:210:in `each'
      # ./lib/plsql/procedure.rb:210:in `ensure_tmp_tables_created'
      # ./lib/plsql/procedure_call.rb:10:in `initialize'
      # ./lib/plsql/procedure.rb:265:in `new'
      # ./lib/plsql/procedure.rb:265:in `exec'
      # ./lib/plsql/package.rb:67:in `method_missing'
      # ./spec/plsql/procedure_spec.rb:1314:in `block (3 levels) in <top (required)>'

  25) Parameter type mapping / Function with table parameter should raise error with record parameter that has table as element
      Failure/Error:
        expect {
          expect(plsql.test_collections.test_employee2(@employees[0])).to eq([@employees[0], { p_employee: @employees[0] }])
        }.to raise_error(ArgumentError, /TEST_COLLECTIONS\.T_NUMBERS definition inside package is not supported/)

        expected ArgumentError with message matching /TEST_COLLECTIONS\.T_NUMBERS definition inside package is not supported/, got #<ArgumentError: Wrong field name :employee_id passed to PL/SQL record argument :p_employee> with backtrace:
          # ./lib/plsql/procedure_call.rb:345:in `block in record_assignment_sql_values_metadata'
          # ./lib/plsql/procedure_call.rb:342:in `each'
          # ./lib/plsql/procedure_call.rb:342:in `record_assignment_sql_values_metadata'
          # ./lib/plsql/procedure_call.rb:227:in `add_argument'
          # ./lib/plsql/procedure_call.rb:203:in `block in construct_sql'
          # ./lib/plsql/procedure_call.rb:200:in `each'
          # ./lib/plsql/procedure_call.rb:200:in `map'
          # ./lib/plsql/procedure_call.rb:200:in `construct_sql'
          # ./lib/plsql/procedure_call.rb:11:in `initialize'
          # ./lib/plsql/procedure.rb:265:in `new'
          # ./lib/plsql/procedure.rb:265:in `exec'
          # ./lib/plsql/package.rb:67:in `method_missing'
          # ./spec/plsql/procedure_spec.rb:1329:in `block (4 levels) in <top (required)>'
          # ./spec/plsql/procedure_spec.rb:1328:in `block (3 levels) in <top (required)>'
      # ./spec/plsql/procedure_spec.rb:1328:in `block (3 levels) in <top (required)>'

  26) Parameter type mapping / Function with table parameter should raise error with table of records parameter when record has table as element
      Failure/Error:
        expect {
          expect(plsql.test_collections.test_employees2(@employees)).to eq([@employees, { p_employees: @employees }])
        }.to raise_error(ArgumentError, /TEST_COLLECTIONS\.T_NUMBERS definition inside package is not supported/)

        expected ArgumentError with message matching /TEST_COLLECTIONS\.T_NUMBERS definition inside package is not supported/, got #<NoMethodError: undefined method `[]' for nil:NilClass> with backtrace:
          # ./lib/plsql/procedure.rb:213:in `block in ensure_tmp_tables_created'
          # ./lib/plsql/procedure.rb:210:in `each'
          # ./lib/plsql/procedure.rb:210:in `ensure_tmp_tables_created'
          # ./lib/plsql/procedure_call.rb:10:in `initialize'
          # ./lib/plsql/procedure.rb:265:in `new'
          # ./lib/plsql/procedure.rb:265:in `exec'
          # ./lib/plsql/package.rb:67:in `method_missing'
          # ./spec/plsql/procedure_spec.rb:1335:in `block (4 levels) in <top (required)>'
          # ./spec/plsql/procedure_spec.rb:1334:in `block (3 levels) in <top (required)>'
      # ./spec/plsql/procedure_spec.rb:1334:in `block (3 levels) in <top (required)>'

  27) Parameter type mapping / Function with table indexed by bynary integer parameter should clear temporary tables after executing function with index-by table of numbers type even if an error occurs in the package
      Failure/Error: case element_metadata[:data_type]

      NoMethodError:
        undefined method `[]' for nil:NilClass
      # ./lib/plsql/procedure.rb:213:in `block in ensure_tmp_tables_created'
      # ./lib/plsql/procedure.rb:210:in `each'
      # ./lib/plsql/procedure.rb:210:in `ensure_tmp_tables_created'
      # ./lib/plsql/procedure_call.rb:10:in `initialize'
      # ./lib/plsql/procedure.rb:265:in `new'
      # ./lib/plsql/procedure.rb:265:in `exec'
      # ./lib/plsql/package.rb:67:in `method_missing'
      # ./spec/plsql/procedure_spec.rb:1466:in `block (3 levels) in <top (required)>'

  28) Parameter type mapping / Function with table indexed by bynary integer parameter should execute function with index-by table of numbers type (defined inside package) parameter
      Failure/Error: case element_metadata[:data_type]

      NoMethodError:
        undefined method `[]' for nil:NilClass
      # ./lib/plsql/procedure.rb:213:in `block in ensure_tmp_tables_created'
      # ./lib/plsql/procedure.rb:210:in `each'
      # ./lib/plsql/procedure.rb:210:in `ensure_tmp_tables_created'
      # ./lib/plsql/procedure_call.rb:10:in `initialize'
      # ./lib/plsql/procedure.rb:265:in `new'
      # ./lib/plsql/procedure.rb:265:in `exec'
      # ./lib/plsql/package.rb:67:in `method_missing'
      # ./spec/plsql/procedure_spec.rb:1474:in `block (3 levels) in <top (required)>'

  29) Parameter type mapping / Function with table indexed by bynary integer parameter should return index-by table of numbers type (defined inside package)
      Failure/Error: case element_metadata[:data_type]

      NoMethodError:
        undefined method `[]' for nil:NilClass
      # ./lib/plsql/procedure.rb:213:in `block in ensure_tmp_tables_created'
      # ./lib/plsql/procedure.rb:210:in `each'
      # ./lib/plsql/procedure.rb:210:in `ensure_tmp_tables_created'
      # ./lib/plsql/procedure_call.rb:10:in `initialize'
      # ./lib/plsql/procedure.rb:265:in `new'
      # ./lib/plsql/procedure.rb:265:in `exec'
      # ./lib/plsql/package.rb:67:in `method_missing'
      # ./spec/plsql/procedure_spec.rb:1478:in `block (3 levels) in <top (required)>'

  30) Parameter type mapping / Function with table indexed by bynary integer parameter should clear temporary tables when autocommit with index-by table of numbers type (defined inside package) parameter
      Failure/Error: case element_metadata[:data_type]

      NoMethodError:
        undefined method `[]' for nil:NilClass
      # ./lib/plsql/procedure.rb:213:in `block in ensure_tmp_tables_created'
      # ./lib/plsql/procedure.rb:210:in `each'
      # ./lib/plsql/procedure.rb:210:in `ensure_tmp_tables_created'
      # ./lib/plsql/procedure_call.rb:10:in `initialize'
      # ./lib/plsql/procedure.rb:265:in `new'
      # ./lib/plsql/procedure.rb:265:in `exec'
      # ./lib/plsql/package.rb:67:in `method_missing'
      # ./spec/plsql/procedure_spec.rb:1485:in `block (3 levels) in <top (required)>'

  31) Parameter type mapping / Function with table indexed by bynary integer parameter should execute function with index-by table of records type (defined inside package) parameter
      Failure/Error: case element_metadata[:data_type]

      NoMethodError:
        undefined method `[]' for nil:NilClass
      # ./lib/plsql/procedure.rb:213:in `block in ensure_tmp_tables_created'
      # ./lib/plsql/procedure.rb:210:in `each'
      # ./lib/plsql/procedure.rb:210:in `ensure_tmp_tables_created'
      # ./lib/plsql/procedure_call.rb:10:in `initialize'
      # ./lib/plsql/procedure.rb:265:in `new'
      # ./lib/plsql/procedure.rb:265:in `exec'
      # ./lib/plsql/package.rb:67:in `method_missing'
      # ./spec/plsql/procedure_spec.rb:1492:in `block (3 levels) in <top (required)>'

  32) Parameter type mapping / Function with table indexed by bynary integer parameter should execute procedure with index-by table of records type (defined inside package) parameter
      Failure/Error: case element_metadata[:data_type]

      NoMethodError:
        undefined method `[]' for nil:NilClass
      # ./lib/plsql/procedure.rb:213:in `block in ensure_tmp_tables_created'
      # ./lib/plsql/procedure.rb:210:in `each'
      # ./lib/plsql/procedure.rb:210:in `ensure_tmp_tables_created'
      # ./lib/plsql/procedure_call.rb:10:in `initialize'
      # ./lib/plsql/procedure.rb:265:in `new'
      # ./lib/plsql/procedure.rb:265:in `exec'
      # ./lib/plsql/package.rb:67:in `method_missing'
      # ./spec/plsql/procedure_spec.rb:1496:in `block (3 levels) in <top (required)>'

  33) Parameter type mapping / Function with table indexed by bynary integer parameter should create temporary tables in autonomous transaction
      Failure/Error: case element_metadata[:data_type]

      NoMethodError:
        undefined method `[]' for nil:NilClass
      # ./lib/plsql/procedure.rb:213:in `block in ensure_tmp_tables_created'
      # ./lib/plsql/procedure.rb:210:in `each'
      # ./lib/plsql/procedure.rb:210:in `ensure_tmp_tables_created'
      # ./lib/plsql/procedure_call.rb:10:in `initialize'
      # ./lib/plsql/procedure.rb:265:in `new'
      # ./lib/plsql/procedure.rb:265:in `exec'
      # ./lib/plsql/package.rb:67:in `method_missing'
      # ./spec/plsql/procedure_spec.rb:1504:in `block (3 levels) in <top (required)>'

  34) Parameter type mapping / Function with table indexed by bynary integer parameter using Oracle 9.2 should create temporary tables when using Oracle 9.2
      Failure/Error: case element_metadata[:data_type]

      NoMethodError:
        undefined method `[]' for nil:NilClass
      # ./lib/plsql/procedure.rb:213:in `block in ensure_tmp_tables_created'
      # ./lib/plsql/procedure.rb:210:in `each'
      # ./lib/plsql/procedure.rb:210:in `ensure_tmp_tables_created'
      # ./lib/plsql/procedure_call.rb:10:in `initialize'
      # ./lib/plsql/procedure.rb:265:in `new'
      # ./lib/plsql/procedure.rb:265:in `exec'
      # ./lib/plsql/package.rb:67:in `method_missing'
      # ./spec/plsql/procedure_spec.rb:1522:in `block (4 levels) in <top (required)>'

  35) Parameter type mapping / Function in package with VARRAY parameter should execute function with number array parameter
      Failure/Error: case element_metadata[:data_type]

      NoMethodError:
        undefined method `[]' for nil:NilClass
      # ./lib/plsql/procedure.rb:213:in `block in ensure_tmp_tables_created'
      # ./lib/plsql/procedure.rb:210:in `each'
      # ./lib/plsql/procedure.rb:210:in `ensure_tmp_tables_created'
      # ./lib/plsql/procedure_call.rb:10:in `initialize'
      # ./lib/plsql/procedure.rb:265:in `new'
      # ./lib/plsql/procedure.rb:265:in `exec'
      # ./lib/plsql/package.rb:67:in `method_missing'
      # ./spec/plsql/procedure_spec.rb:1753:in `block (3 levels) in <top (required)>'

  36) Parameter type mapping / Function in package with VARRAY parameter should clear temporary tables after executing function with varray of numbers type even if an error occurs in the package
      Failure/Error: case element_metadata[:data_type]

      NoMethodError:
        undefined method `[]' for nil:NilClass
      # ./lib/plsql/procedure.rb:213:in `block in ensure_tmp_tables_created'
      # ./lib/plsql/procedure.rb:210:in `each'
      # ./lib/plsql/procedure.rb:210:in `ensure_tmp_tables_created'
      # ./lib/plsql/procedure_call.rb:10:in `initialize'
      # ./lib/plsql/procedure.rb:265:in `new'
      # ./lib/plsql/procedure.rb:265:in `exec'
      # ./lib/plsql/package.rb:67:in `method_missing'
      # ./spec/plsql/procedure_spec.rb:1758:in `block (3 levels) in <top (required)>'

  37) Parameter type mapping / Function in package with VARRAY parameter should return number array return value
      Failure/Error: case element_metadata[:data_type]

      NoMethodError:
        undefined method `[]' for nil:NilClass
      # ./lib/plsql/procedure.rb:213:in `block in ensure_tmp_tables_created'
      # ./lib/plsql/procedure.rb:210:in `each'
      # ./lib/plsql/procedure.rb:210:in `ensure_tmp_tables_created'
      # ./lib/plsql/procedure_call.rb:10:in `initialize'
      # ./lib/plsql/procedure.rb:265:in `new'
      # ./lib/plsql/procedure.rb:265:in `exec'
      # ./lib/plsql/package.rb:67:in `method_missing'
      # ./spec/plsql/procedure_spec.rb:1766:in `block (3 levels) in <top (required)>'

  38) Parameter type mapping / Function in package with VARRAY parameter should execute function with string array and return string array output parameter
      Failure/Error: case element_metadata[:data_type]

      NoMethodError:
        undefined method `[]' for nil:NilClass
      # ./lib/plsql/procedure.rb:213:in `block in ensure_tmp_tables_created'
      # ./lib/plsql/procedure.rb:210:in `each'
      # ./lib/plsql/procedure.rb:210:in `ensure_tmp_tables_created'
      # ./lib/plsql/procedure_call.rb:10:in `initialize'
      # ./lib/plsql/procedure.rb:265:in `new'
      # ./lib/plsql/procedure.rb:265:in `exec'
      # ./lib/plsql/package.rb:67:in `method_missing'
      # ./spec/plsql/procedure_spec.rb:1771:in `block (3 levels) in <top (required)>'

  39) Parameter type mapping / Function in package with VARRAY parameter should execute function with object array and return object array output parameter
      Failure/Error: case element_metadata[:data_type]

      NoMethodError:
        undefined method `[]' for nil:NilClass
      # ./lib/plsql/procedure.rb:213:in `block in ensure_tmp_tables_created'
      # ./lib/plsql/procedure.rb:210:in `each'
      # ./lib/plsql/procedure.rb:210:in `ensure_tmp_tables_created'
      # ./lib/plsql/procedure_call.rb:10:in `initialize'
      # ./lib/plsql/procedure.rb:265:in `new'
      # ./lib/plsql/procedure.rb:265:in `exec'
      # ./lib/plsql/package.rb:67:in `method_missing'
      # ./spec/plsql/procedure_spec.rb:1776:in `block (3 levels) in <top (required)>'

  40) Parameter type mapping / Function with cursor return value or parameter should find existing function
      Failure/Error: raise ArgumentError, "Wrong field name #{key.inspect} passed to PL/SQL record argument #{argument.inspect}" unless metadata

      ArgumentError:
        Wrong field name :employee_id passed to PL/SQL record argument :p_employee
      # ./lib/plsql/procedure_call.rb:345:in `block in record_assignment_sql_values_metadata'
      # ./lib/plsql/procedure_call.rb:342:in `each'
      # ./lib/plsql/procedure_call.rb:342:in `record_assignment_sql_values_metadata'
      # ./lib/plsql/procedure_call.rb:227:in `add_argument'
      # ./lib/plsql/procedure_call.rb:203:in `block in construct_sql'
      # ./lib/plsql/procedure_call.rb:200:in `each'
      # ./lib/plsql/procedure_call.rb:200:in `map'
      # ./lib/plsql/procedure_call.rb:200:in `construct_sql'
      # ./lib/plsql/procedure_call.rb:11:in `initialize'
      # ./lib/plsql/procedure.rb:265:in `new'
      # ./lib/plsql/procedure.rb:265:in `exec'
      # ./lib/plsql/schema.rb:185:in `method_missing'
      # ./spec/plsql/procedure_spec.rb:1846:in `block (4 levels) in <top (required)>'
      # ./spec/plsql/procedure_spec.rb:1845:in `each'
      # ./spec/plsql/procedure_spec.rb:1845:in `block (3 levels) in <top (required)>'

  41) Parameter type mapping / Function with cursor return value or parameter should return cursor and fetch first row
      Failure/Error: raise ArgumentError, "Wrong field name #{key.inspect} passed to PL/SQL record argument #{argument.inspect}" unless metadata

      ArgumentError:
        Wrong field name :employee_id passed to PL/SQL record argument :p_employee
      # ./lib/plsql/procedure_call.rb:345:in `block in record_assignment_sql_values_metadata'
      # ./lib/plsql/procedure_call.rb:342:in `each'
      # ./lib/plsql/procedure_call.rb:342:in `record_assignment_sql_values_metadata'
      # ./lib/plsql/procedure_call.rb:227:in `add_argument'
      # ./lib/plsql/procedure_call.rb:203:in `block in construct_sql'
      # ./lib/plsql/procedure_call.rb:200:in `each'
      # ./lib/plsql/procedure_call.rb:200:in `map'
      # ./lib/plsql/procedure_call.rb:200:in `construct_sql'
      # ./lib/plsql/procedure_call.rb:11:in `initialize'
      # ./lib/plsql/procedure.rb:265:in `new'
      # ./lib/plsql/procedure.rb:265:in `exec'
      # ./lib/plsql/schema.rb:185:in `method_missing'
      # ./spec/plsql/procedure_spec.rb:1846:in `block (4 levels) in <top (required)>'
      # ./spec/plsql/procedure_spec.rb:1845:in `each'
      # ./spec/plsql/procedure_spec.rb:1845:in `block (3 levels) in <top (required)>'

  42) Parameter type mapping / Function with cursor return value or parameter should close all returned cursors after block is executed
      Failure/Error: raise ArgumentError, "Wrong field name #{key.inspect} passed to PL/SQL record argument #{argument.inspect}" unless metadata

      ArgumentError:
        Wrong field name :employee_id passed to PL/SQL record argument :p_employee
      # ./lib/plsql/procedure_call.rb:345:in `block in record_assignment_sql_values_metadata'
      # ./lib/plsql/procedure_call.rb:342:in `each'
      # ./lib/plsql/procedure_call.rb:342:in `record_assignment_sql_values_metadata'
      # ./lib/plsql/procedure_call.rb:227:in `add_argument'
      # ./lib/plsql/procedure_call.rb:203:in `block in construct_sql'
      # ./lib/plsql/procedure_call.rb:200:in `each'
      # ./lib/plsql/procedure_call.rb:200:in `map'
      # ./lib/plsql/procedure_call.rb:200:in `construct_sql'
      # ./lib/plsql/procedure_call.rb:11:in `initialize'
      # ./lib/plsql/procedure.rb:265:in `new'
      # ./lib/plsql/procedure.rb:265:in `exec'
      # ./lib/plsql/schema.rb:185:in `method_missing'
      # ./spec/plsql/procedure_spec.rb:1846:in `block (4 levels) in <top (required)>'
      # ./spec/plsql/procedure_spec.rb:1845:in `each'
      # ./spec/plsql/procedure_spec.rb:1845:in `block (3 levels) in <top (required)>'

  43) Parameter type mapping / Function with cursor return value or parameter should not raise error if cursor is closed inside block
      Failure/Error: raise ArgumentError, "Wrong field name #{key.inspect} passed to PL/SQL record argument #{argument.inspect}" unless metadata

      ArgumentError:
        Wrong field name :employee_id passed to PL/SQL record argument :p_employee
      # ./lib/plsql/procedure_call.rb:345:in `block in record_assignment_sql_values_metadata'
      # ./lib/plsql/procedure_call.rb:342:in `each'
      # ./lib/plsql/procedure_call.rb:342:in `record_assignment_sql_values_metadata'
      # ./lib/plsql/procedure_call.rb:227:in `add_argument'
      # ./lib/plsql/procedure_call.rb:203:in `block in construct_sql'
      # ./lib/plsql/procedure_call.rb:200:in `each'
      # ./lib/plsql/procedure_call.rb:200:in `map'
      # ./lib/plsql/procedure_call.rb:200:in `construct_sql'
      # ./lib/plsql/procedure_call.rb:11:in `initialize'
      # ./lib/plsql/procedure.rb:265:in `new'
      # ./lib/plsql/procedure.rb:265:in `exec'
      # ./lib/plsql/schema.rb:185:in `method_missing'
      # ./spec/plsql/procedure_spec.rb:1846:in `block (4 levels) in <top (required)>'
      # ./spec/plsql/procedure_spec.rb:1845:in `each'
      # ./spec/plsql/procedure_spec.rb:1845:in `block (3 levels) in <top (required)>'

  44) Parameter type mapping / Function with cursor return value or parameter should fetch hash from returned cursor
      Failure/Error: raise ArgumentError, "Wrong field name #{key.inspect} passed to PL/SQL record argument #{argument.inspect}" unless metadata

      ArgumentError:
        Wrong field name :employee_id passed to PL/SQL record argument :p_employee
      # ./lib/plsql/procedure_call.rb:345:in `block in record_assignment_sql_values_metadata'
      # ./lib/plsql/procedure_call.rb:342:in `each'
      # ./lib/plsql/procedure_call.rb:342:in `record_assignment_sql_values_metadata'
      # ./lib/plsql/procedure_call.rb:227:in `add_argument'
      # ./lib/plsql/procedure_call.rb:203:in `block in construct_sql'
      # ./lib/plsql/procedure_call.rb:200:in `each'
      # ./lib/plsql/procedure_call.rb:200:in `map'
      # ./lib/plsql/procedure_call.rb:200:in `construct_sql'
      # ./lib/plsql/procedure_call.rb:11:in `initialize'
      # ./lib/plsql/procedure.rb:265:in `new'
      # ./lib/plsql/procedure.rb:265:in `exec'
      # ./lib/plsql/schema.rb:185:in `method_missing'
      # ./spec/plsql/procedure_spec.rb:1846:in `block (4 levels) in <top (required)>'
      # ./spec/plsql/procedure_spec.rb:1845:in `each'
      # ./spec/plsql/procedure_spec.rb:1845:in `block (3 levels) in <top (required)>'

  45) Parameter type mapping / Function with cursor return value or parameter should fetch all rows from returned cursor
      Failure/Error: raise ArgumentError, "Wrong field name #{key.inspect} passed to PL/SQL record argument #{argument.inspect}" unless metadata

      ArgumentError:
        Wrong field name :employee_id passed to PL/SQL record argument :p_employee
      # ./lib/plsql/procedure_call.rb:345:in `block in record_assignment_sql_values_metadata'
      # ./lib/plsql/procedure_call.rb:342:in `each'
      # ./lib/plsql/procedure_call.rb:342:in `record_assignment_sql_values_metadata'
      # ./lib/plsql/procedure_call.rb:227:in `add_argument'
      # ./lib/plsql/procedure_call.rb:203:in `block in construct_sql'
      # ./lib/plsql/procedure_call.rb:200:in `each'
      # ./lib/plsql/procedure_call.rb:200:in `map'
      # ./lib/plsql/procedure_call.rb:200:in `construct_sql'
      # ./lib/plsql/procedure_call.rb:11:in `initialize'
      # ./lib/plsql/procedure.rb:265:in `new'
      # ./lib/plsql/procedure.rb:265:in `exec'
      # ./lib/plsql/schema.rb:185:in `method_missing'
      # ./spec/plsql/procedure_spec.rb:1846:in `block (4 levels) in <top (required)>'
      # ./spec/plsql/procedure_spec.rb:1845:in `each'
      # ./spec/plsql/procedure_spec.rb:1845:in `block (3 levels) in <top (required)>'

  46) Parameter type mapping / Function with cursor return value or parameter should fetch all rows as hash from returned cursor
      Failure/Error: raise ArgumentError, "Wrong field name #{key.inspect} passed to PL/SQL record argument #{argument.inspect}" unless metadata

      ArgumentError:
        Wrong field name :employee_id passed to PL/SQL record argument :p_employee
      # ./lib/plsql/procedure_call.rb:345:in `block in record_assignment_sql_values_metadata'
      # ./lib/plsql/procedure_call.rb:342:in `each'
      # ./lib/plsql/procedure_call.rb:342:in `record_assignment_sql_values_metadata'
      # ./lib/plsql/procedure_call.rb:227:in `add_argument'
      # ./lib/plsql/procedure_call.rb:203:in `block in construct_sql'
      # ./lib/plsql/procedure_call.rb:200:in `each'
      # ./lib/plsql/procedure_call.rb:200:in `map'
      # ./lib/plsql/procedure_call.rb:200:in `construct_sql'
      # ./lib/plsql/procedure_call.rb:11:in `initialize'
      # ./lib/plsql/procedure.rb:265:in `new'
      # ./lib/plsql/procedure.rb:265:in `exec'
      # ./lib/plsql/schema.rb:185:in `method_missing'
      # ./spec/plsql/procedure_spec.rb:1846:in `block (4 levels) in <top (required)>'
      # ./spec/plsql/procedure_spec.rb:1845:in `each'
      # ./spec/plsql/procedure_spec.rb:1845:in `block (3 levels) in <top (required)>'

  47) Parameter type mapping / Function with cursor return value or parameter should get field names from returned cursor
      Failure/Error: raise ArgumentError, "Wrong field name #{key.inspect} passed to PL/SQL record argument #{argument.inspect}" unless metadata

      ArgumentError:
        Wrong field name :employee_id passed to PL/SQL record argument :p_employee
      # ./lib/plsql/procedure_call.rb:345:in `block in record_assignment_sql_values_metadata'
      # ./lib/plsql/procedure_call.rb:342:in `each'
      # ./lib/plsql/procedure_call.rb:342:in `record_assignment_sql_values_metadata'
      # ./lib/plsql/procedure_call.rb:227:in `add_argument'
      # ./lib/plsql/procedure_call.rb:203:in `block in construct_sql'
      # ./lib/plsql/procedure_call.rb:200:in `each'
      # ./lib/plsql/procedure_call.rb:200:in `map'
      # ./lib/plsql/procedure_call.rb:200:in `construct_sql'
      # ./lib/plsql/procedure_call.rb:11:in `initialize'
      # ./lib/plsql/procedure.rb:265:in `new'
      # ./lib/plsql/procedure.rb:265:in `exec'
      # ./lib/plsql/schema.rb:185:in `method_missing'
      # ./spec/plsql/procedure_spec.rb:1846:in `block (4 levels) in <top (required)>'
      # ./spec/plsql/procedure_spec.rb:1845:in `each'
      # ./spec/plsql/procedure_spec.rb:1845:in `block (3 levels) in <top (required)>'

  48) Parameter type mapping / Function with cursor return value or parameter should return output parameter with cursor and fetch first row
      Failure/Error: raise ArgumentError, "Wrong field name #{key.inspect} passed to PL/SQL record argument #{argument.inspect}" unless metadata

      ArgumentError:
        Wrong field name :employee_id passed to PL/SQL record argument :p_employee
      # ./lib/plsql/procedure_call.rb:345:in `block in record_assignment_sql_values_metadata'
      # ./lib/plsql/procedure_call.rb:342:in `each'
      # ./lib/plsql/procedure_call.rb:342:in `record_assignment_sql_values_metadata'
      # ./lib/plsql/procedure_call.rb:227:in `add_argument'
      # ./lib/plsql/procedure_call.rb:203:in `block in construct_sql'
      # ./lib/plsql/procedure_call.rb:200:in `each'
      # ./lib/plsql/procedure_call.rb:200:in `map'
      # ./lib/plsql/procedure_call.rb:200:in `construct_sql'
      # ./lib/plsql/procedure_call.rb:11:in `initialize'
      # ./lib/plsql/procedure.rb:265:in `new'
      # ./lib/plsql/procedure.rb:265:in `exec'
      # ./lib/plsql/schema.rb:185:in `method_missing'
      # ./spec/plsql/procedure_spec.rb:1846:in `block (4 levels) in <top (required)>'
      # ./spec/plsql/procedure_spec.rb:1845:in `each'
      # ./spec/plsql/procedure_spec.rb:1845:in `block (3 levels) in <top (required)>'

  49) Parameter type mapping / Function with cursor return value or parameter should return output parameter with cursor and fetch all rows as hash
      Failure/Error: raise ArgumentError, "Wrong field name #{key.inspect} passed to PL/SQL record argument #{argument.inspect}" unless metadata

      ArgumentError:
        Wrong field name :employee_id passed to PL/SQL record argument :p_employee
      # ./lib/plsql/procedure_call.rb:345:in `block in record_assignment_sql_values_metadata'
      # ./lib/plsql/procedure_call.rb:342:in `each'
      # ./lib/plsql/procedure_call.rb:342:in `record_assignment_sql_values_metadata'
      # ./lib/plsql/procedure_call.rb:227:in `add_argument'
      # ./lib/plsql/procedure_call.rb:203:in `block in construct_sql'
      # ./lib/plsql/procedure_call.rb:200:in `each'
      # ./lib/plsql/procedure_call.rb:200:in `map'
      # ./lib/plsql/procedure_call.rb:200:in `construct_sql'
      # ./lib/plsql/procedure_call.rb:11:in `initialize'
      # ./lib/plsql/procedure.rb:265:in `new'
      # ./lib/plsql/procedure.rb:265:in `exec'
      # ./lib/plsql/schema.rb:185:in `method_missing'
      # ./spec/plsql/procedure_spec.rb:1846:in `block (4 levels) in <top (required)>'
      # ./spec/plsql/procedure_spec.rb:1845:in `each'
      # ./spec/plsql/procedure_spec.rb:1845:in `block (3 levels) in <top (required)>'

  50) Parameter type mapping / Function with cursor return value or parameter should execute function with cursor parameter and return record
      Failure/Error: raise ArgumentError, "Wrong field name #{key.inspect} passed to PL/SQL record argument #{argument.inspect}" unless metadata

      ArgumentError:
        Wrong field name :employee_id passed to PL/SQL record argument :p_employee
      # ./lib/plsql/procedure_call.rb:345:in `block in record_assignment_sql_values_metadata'
      # ./lib/plsql/procedure_call.rb:342:in `each'
      # ./lib/plsql/procedure_call.rb:342:in `record_assignment_sql_values_metadata'
      # ./lib/plsql/procedure_call.rb:227:in `add_argument'
      # ./lib/plsql/procedure_call.rb:203:in `block in construct_sql'
      # ./lib/plsql/procedure_call.rb:200:in `each'
      # ./lib/plsql/procedure_call.rb:200:in `map'
      # ./lib/plsql/procedure_call.rb:200:in `construct_sql'
      # ./lib/plsql/procedure_call.rb:11:in `initialize'
      # ./lib/plsql/procedure.rb:265:in `new'
      # ./lib/plsql/procedure.rb:265:in `exec'
      # ./lib/plsql/schema.rb:185:in `method_missing'
      # ./spec/plsql/procedure_spec.rb:1846:in `block (4 levels) in <top (required)>'
      # ./spec/plsql/procedure_spec.rb:1845:in `each'
      # ./spec/plsql/procedure_spec.rb:1845:in `block (3 levels) in <top (required)>'

  51) Parameter type mapping / Function with typed ref cursor return value should return cursor and fetch first row
      Failure/Error: raise ArgumentError, "Parameter type #{sql_type_name} definition inside package is not supported, use CREATE TYPE outside package" if overload == 0

      ArgumentError:
        Parameter type HR.TYPED_REF_CURSOR_TEST.TEST_REC definition inside package is not supported, use CREATE TYPE outside package
      # ./lib/plsql/procedure.rb:143:in `block in get_argument_metadata'
      # ./lib/plsql/connection.rb:121:in `select_all'
      # ./lib/plsql/sql_statements.rb:10:in `select_all'
      # ./lib/plsql/procedure.rb:105:in `get_argument_metadata'
      # ./lib/plsql/procedure.rb:261:in `initialize'
      # ./lib/plsql/procedure.rb:43:in `new'
      # ./lib/plsql/procedure.rb:43:in `find'
      # ./lib/plsql/package.rb:52:in `block in []'
      # ./lib/plsql/package.rb:51:in `each'
      # ./lib/plsql/package.rb:51:in `inject'
      # ./lib/plsql/package.rb:51:in `[]'
      # ./lib/plsql/package.rb:62:in `method_missing'
      # ./spec/plsql/procedure_spec.rb:1975:in `block (3 levels) in <top (required)>'

  52) Parameter type mapping / Function with typed ref cursor return value should fetch hash from returned cursor
      Failure/Error: raise ArgumentError, "Parameter type #{sql_type_name} definition inside package is not supported, use CREATE TYPE outside package" if overload == 0

      ArgumentError:
        Parameter type HR.TYPED_REF_CURSOR_TEST.TEST_REC definition inside package is not supported, use CREATE TYPE outside package
      # ./lib/plsql/procedure.rb:143:in `block in get_argument_metadata'
      # ./lib/plsql/connection.rb:121:in `select_all'
      # ./lib/plsql/sql_statements.rb:10:in `select_all'
      # ./lib/plsql/procedure.rb:105:in `get_argument_metadata'
      # ./lib/plsql/procedure.rb:261:in `initialize'
      # ./lib/plsql/procedure.rb:43:in `new'
      # ./lib/plsql/procedure.rb:43:in `find'
      # ./lib/plsql/package.rb:52:in `block in []'
      # ./lib/plsql/package.rb:51:in `each'
      # ./lib/plsql/package.rb:51:in `inject'
      # ./lib/plsql/package.rb:51:in `[]'
      # ./lib/plsql/package.rb:62:in `method_missing'
      # ./spec/plsql/procedure_spec.rb:1981:in `block (3 levels) in <top (required)>'

  53) Parameter type mapping / Function with typed ref cursor return value should fetch all rows from returned cursor
      Failure/Error: raise ArgumentError, "Parameter type #{sql_type_name} definition inside package is not supported, use CREATE TYPE outside package" if overload == 0

      ArgumentError:
        Parameter type HR.TYPED_REF_CURSOR_TEST.TEST_REC definition inside package is not supported, use CREATE TYPE outside package
      # ./lib/plsql/procedure.rb:143:in `block in get_argument_metadata'
      # ./lib/plsql/connection.rb:121:in `select_all'
      # ./lib/plsql/sql_statements.rb:10:in `select_all'
      # ./lib/plsql/procedure.rb:105:in `get_argument_metadata'
      # ./lib/plsql/procedure.rb:261:in `initialize'
      # ./lib/plsql/procedure.rb:43:in `new'
      # ./lib/plsql/procedure.rb:43:in `find'
      # ./lib/plsql/package.rb:52:in `block in []'
      # ./lib/plsql/package.rb:51:in `each'
      # ./lib/plsql/package.rb:51:in `inject'
      # ./lib/plsql/package.rb:51:in `[]'
      # ./lib/plsql/package.rb:62:in `method_missing'
      # ./spec/plsql/procedure_spec.rb:1987:in `block (3 levels) in <top (required)>'

  54) SQL statements / SELECT should select first result
      Failure/Error: raise ArgumentError, "Wrong field name #{key.inspect} passed to PL/SQL record argument #{argument.inspect}" unless metadata

      ArgumentError:
        Wrong field name :employee_id passed to PL/SQL record argument :p_employee
      # ./lib/plsql/procedure_call.rb:345:in `block in record_assignment_sql_values_metadata'
      # ./lib/plsql/procedure_call.rb:342:in `each'
      # ./lib/plsql/procedure_call.rb:342:in `record_assignment_sql_values_metadata'
      # ./lib/plsql/procedure_call.rb:227:in `add_argument'
      # ./lib/plsql/procedure_call.rb:203:in `block in construct_sql'
      # ./lib/plsql/procedure_call.rb:200:in `map'
      # ./lib/plsql/procedure_call.rb:200:in `construct_sql'
      # ./lib/plsql/procedure_call.rb:11:in `initialize'
      # ./lib/plsql/procedure.rb:265:in `new'
      # ./lib/plsql/procedure.rb:265:in `exec'
      # ./lib/plsql/schema.rb:185:in `method_missing'
      # ./spec/plsql/sql_statements_spec.rb:49:in `block (4 levels) in <top (required)>'
      # ./spec/plsql/sql_statements_spec.rb:48:in `each'
      # ./spec/plsql/sql_statements_spec.rb:48:in `block (3 levels) in <top (required)>'

  55) SQL statements / SELECT should prefetch only one row when selecting first result
      Failure/Error: raise ArgumentError, "Wrong field name #{key.inspect} passed to PL/SQL record argument #{argument.inspect}" unless metadata

      ArgumentError:
        Wrong field name :employee_id passed to PL/SQL record argument :p_employee
      # ./lib/plsql/procedure_call.rb:345:in `block in record_assignment_sql_values_metadata'
      # ./lib/plsql/procedure_call.rb:342:in `each'
      # ./lib/plsql/procedure_call.rb:342:in `record_assignment_sql_values_metadata'
      # ./lib/plsql/procedure_call.rb:227:in `add_argument'
      # ./lib/plsql/procedure_call.rb:203:in `block in construct_sql'
      # ./lib/plsql/procedure_call.rb:200:in `map'
      # ./lib/plsql/procedure_call.rb:200:in `construct_sql'
      # ./lib/plsql/procedure_call.rb:11:in `initialize'
      # ./lib/plsql/procedure.rb:265:in `new'
      # ./lib/plsql/procedure.rb:265:in `exec'
      # ./lib/plsql/schema.rb:185:in `method_missing'
      # ./spec/plsql/sql_statements_spec.rb:49:in `block (4 levels) in <top (required)>'
      # ./spec/plsql/sql_statements_spec.rb:48:in `each'
      # ./spec/plsql/sql_statements_spec.rb:48:in `block (3 levels) in <top (required)>'

  56) SQL statements / SELECT should select one value
      Failure/Error: raise ArgumentError, "Wrong field name #{key.inspect} passed to PL/SQL record argument #{argument.inspect}" unless metadata

      ArgumentError:
        Wrong field name :employee_id passed to PL/SQL record argument :p_employee
      # ./lib/plsql/procedure_call.rb:345:in `block in record_assignment_sql_values_metadata'
      # ./lib/plsql/procedure_call.rb:342:in `each'
      # ./lib/plsql/procedure_call.rb:342:in `record_assignment_sql_values_metadata'
      # ./lib/plsql/procedure_call.rb:227:in `add_argument'
      # ./lib/plsql/procedure_call.rb:203:in `block in construct_sql'
      # ./lib/plsql/procedure_call.rb:200:in `map'
      # ./lib/plsql/procedure_call.rb:200:in `construct_sql'
      # ./lib/plsql/procedure_call.rb:11:in `initialize'
      # ./lib/plsql/procedure.rb:265:in `new'
      # ./lib/plsql/procedure.rb:265:in `exec'
      # ./lib/plsql/schema.rb:185:in `method_missing'
      # ./spec/plsql/sql_statements_spec.rb:49:in `block (4 levels) in <top (required)>'
      # ./spec/plsql/sql_statements_spec.rb:48:in `each'
      # ./spec/plsql/sql_statements_spec.rb:48:in `block (3 levels) in <top (required)>'

  57) SQL statements / SELECT should return nil when selecting non-existing one value
      Failure/Error: raise ArgumentError, "Wrong field name #{key.inspect} passed to PL/SQL record argument #{argument.inspect}" unless metadata

      ArgumentError:
        Wrong field name :employee_id passed to PL/SQL record argument :p_employee
      # ./lib/plsql/procedure_call.rb:345:in `block in record_assignment_sql_values_metadata'
      # ./lib/plsql/procedure_call.rb:342:in `each'
      # ./lib/plsql/procedure_call.rb:342:in `record_assignment_sql_values_metadata'
      # ./lib/plsql/procedure_call.rb:227:in `add_argument'
      # ./lib/plsql/procedure_call.rb:203:in `block in construct_sql'
      # ./lib/plsql/procedure_call.rb:200:in `map'
      # ./lib/plsql/procedure_call.rb:200:in `construct_sql'
      # ./lib/plsql/procedure_call.rb:11:in `initialize'
      # ./lib/plsql/procedure.rb:265:in `new'
      # ./lib/plsql/procedure.rb:265:in `exec'
      # ./lib/plsql/schema.rb:185:in `method_missing'
      # ./spec/plsql/sql_statements_spec.rb:49:in `block (4 levels) in <top (required)>'
      # ./spec/plsql/sql_statements_spec.rb:48:in `each'
      # ./spec/plsql/sql_statements_spec.rb:48:in `block (3 levels) in <top (required)>'

  58) SQL statements / SELECT should prefetch only one row when selecting one value
      Failure/Error: raise ArgumentError, "Wrong field name #{key.inspect} passed to PL/SQL record argument #{argument.inspect}" unless metadata

      ArgumentError:
        Wrong field name :employee_id passed to PL/SQL record argument :p_employee
      # ./lib/plsql/procedure_call.rb:345:in `block in record_assignment_sql_values_metadata'
      # ./lib/plsql/procedure_call.rb:342:in `each'
      # ./lib/plsql/procedure_call.rb:342:in `record_assignment_sql_values_metadata'
      # ./lib/plsql/procedure_call.rb:227:in `add_argument'
      # ./lib/plsql/procedure_call.rb:203:in `block in construct_sql'
      # ./lib/plsql/procedure_call.rb:200:in `map'
      # ./lib/plsql/procedure_call.rb:200:in `construct_sql'
      # ./lib/plsql/procedure_call.rb:11:in `initialize'
      # ./lib/plsql/procedure.rb:265:in `new'
      # ./lib/plsql/procedure.rb:265:in `exec'
      # ./lib/plsql/schema.rb:185:in `method_missing'
      # ./spec/plsql/sql_statements_spec.rb:49:in `block (4 levels) in <top (required)>'
      # ./spec/plsql/sql_statements_spec.rb:48:in `each'
      # ./spec/plsql/sql_statements_spec.rb:48:in `block (3 levels) in <top (required)>'

  59) SQL statements / SELECT should select all results
      Failure/Error: raise ArgumentError, "Wrong field name #{key.inspect} passed to PL/SQL record argument #{argument.inspect}" unless metadata

      ArgumentError:
        Wrong field name :employee_id passed to PL/SQL record argument :p_employee
      # ./lib/plsql/procedure_call.rb:345:in `block in record_assignment_sql_values_metadata'
      # ./lib/plsql/procedure_call.rb:342:in `each'
      # ./lib/plsql/procedure_call.rb:342:in `record_assignment_sql_values_metadata'
      # ./lib/plsql/procedure_call.rb:227:in `add_argument'
      # ./lib/plsql/procedure_call.rb:203:in `block in construct_sql'
      # ./lib/plsql/procedure_call.rb:200:in `map'
      # ./lib/plsql/procedure_call.rb:200:in `construct_sql'
      # ./lib/plsql/procedure_call.rb:11:in `initialize'
      # ./lib/plsql/procedure.rb:265:in `new'
      # ./lib/plsql/procedure.rb:265:in `exec'
      # ./lib/plsql/schema.rb:185:in `method_missing'
      # ./spec/plsql/sql_statements_spec.rb:49:in `block (4 levels) in <top (required)>'
      # ./spec/plsql/sql_statements_spec.rb:48:in `each'
      # ./spec/plsql/sql_statements_spec.rb:48:in `block (3 levels) in <top (required)>'

Finished in 54.08 seconds (files took 0.53237 seconds to load)
450 examples, 59 failures, 3 pending

Failed examples:

rspec ./spec/plsql/connection_spec.rb:424 # Connection session information should get database version
rspec ./spec/plsql/procedure_spec.rb:807 # Parameter type mapping / Function with record parameter should execute function with named parameter and return correct value
rspec ./spec/plsql/procedure_spec.rb:811 # Parameter type mapping / Function with record parameter should execute function with sequential parameter and return correct value
rspec ./spec/plsql/procedure_spec.rb:815 # Parameter type mapping / Function with record parameter should execute function with Hash parameter using strings as keys
rspec ./spec/plsql/procedure_spec.rb:825 # Parameter type mapping / Function with record parameter should return empty table of records
rspec ./spec/plsql/procedure_spec.rb:829 # Parameter type mapping / Function with record parameter should return record return value
rspec ./spec/plsql/procedure_spec.rb:833 # Parameter type mapping / Function with record parameter should return record return value and output record parameter value
rspec ./spec/plsql/procedure_spec.rb:837 # Parameter type mapping / Function with record parameter should execute package function with parameter with record type defined in package
rspec ./spec/plsql/procedure_spec.rb[1:24:10:1] # Parameter type mapping / Function with record parameter functions with record parameters having boolean attributes should execute function with record having boolean attribute (true)
rspec ./spec/plsql/procedure_spec.rb[1:24:10:2] # Parameter type mapping / Function with record parameter functions with record parameters having boolean attributes procedure should return record with boolean attribute as output parameter (true)
rspec ./spec/plsql/procedure_spec.rb[1:24:10:3] # Parameter type mapping / Function with record parameter functions with record parameters having boolean attributes function should return record with boolean attribute (true)
rspec ./spec/plsql/procedure_spec.rb[1:24:10:4] # Parameter type mapping / Function with record parameter functions with record parameters having boolean attributes should execute function with record having boolean attribute (false)
rspec ./spec/plsql/procedure_spec.rb[1:24:10:5] # Parameter type mapping / Function with record parameter functions with record parameters having boolean attributes procedure should return record with boolean attribute as output parameter (false)
rspec ./spec/plsql/procedure_spec.rb[1:24:10:6] # Parameter type mapping / Function with record parameter functions with record parameters having boolean attributes function should return record with boolean attribute (false)
rspec ./spec/plsql/procedure_spec.rb[1:24:10:7] # Parameter type mapping / Function with record parameter functions with record parameters having boolean attributes should execute function with record having boolean attribute ()
rspec ./spec/plsql/procedure_spec.rb[1:24:10:8] # Parameter type mapping / Function with record parameter functions with record parameters having boolean attributes procedure should return record with boolean attribute as output parameter ()
rspec ./spec/plsql/procedure_spec.rb[1:24:10:9] # Parameter type mapping / Function with record parameter functions with record parameters having boolean attributes function should return record with boolean attribute ()
rspec ./spec/plsql/procedure_spec.rb:1276 # Parameter type mapping / Function with table parameter should execute function with table of numbers type (defined inside package) parameter
rspec ./spec/plsql/procedure_spec.rb:1280 # Parameter type mapping / Function with table parameter should clear temporary tables after executing function with table of numbers type even if an error occurs in the package
rspec ./spec/plsql/procedure_spec.rb:1289 # Parameter type mapping / Function with table parameter should return table of numbers type (defined inside package)
rspec ./spec/plsql/procedure_spec.rb:1293 # Parameter type mapping / Function with table parameter should clear temporary tables after executing function with table of numbers type (defined inside package) parameter
rspec ./spec/plsql/procedure_spec.rb:1299 # Parameter type mapping / Function with table parameter should clear temporary tables when autocommit with table of numbers type (defined inside package) parameter
rspec ./spec/plsql/procedure_spec.rb:1309 # Parameter type mapping / Function with table parameter should execute function with table of records type (defined inside package) parameter
rspec ./spec/plsql/procedure_spec.rb:1313 # Parameter type mapping / Function with table parameter should execute function with table of records type (defined inside package and includes NVARCHAR columns) parameter
rspec ./spec/plsql/procedure_spec.rb:1327 # Parameter type mapping / Function with table parameter should raise error with record parameter that has table as element
rspec ./spec/plsql/procedure_spec.rb:1333 # Parameter type mapping / Function with table parameter should raise error with table of records parameter when record has table as element
rspec ./spec/plsql/procedure_spec.rb:1464 # Parameter type mapping / Function with table indexed by bynary integer parameter should clear temporary tables after executing function with index-by table of numbers type even if an error occurs in the package
rspec ./spec/plsql/procedure_spec.rb:1473 # Parameter type mapping / Function with table indexed by bynary integer parameter should execute function with index-by table of numbers type (defined inside package) parameter
rspec ./spec/plsql/procedure_spec.rb:1477 # Parameter type mapping / Function with table indexed by bynary integer parameter should return index-by table of numbers type (defined inside package)
rspec ./spec/plsql/procedure_spec.rb:1481 # Parameter type mapping / Function with table indexed by bynary integer parameter should clear temporary tables when autocommit with index-by table of numbers type (defined inside package) parameter
rspec ./spec/plsql/procedure_spec.rb:1491 # Parameter type mapping / Function with table indexed by bynary integer parameter should execute function with index-by table of records type (defined inside package) parameter
rspec ./spec/plsql/procedure_spec.rb:1495 # Parameter type mapping / Function with table indexed by bynary integer parameter should execute procedure with index-by table of records type (defined inside package) parameter
rspec ./spec/plsql/procedure_spec.rb:1499 # Parameter type mapping / Function with table indexed by bynary integer parameter should create temporary tables in autonomous transaction
rspec ./spec/plsql/procedure_spec.rb:1521 # Parameter type mapping / Function with table indexed by bynary integer parameter using Oracle 9.2 should create temporary tables when using Oracle 9.2
rspec ./spec/plsql/procedure_spec.rb:1752 # Parameter type mapping / Function in package with VARRAY parameter should execute function with number array parameter
rspec ./spec/plsql/procedure_spec.rb:1756 # Parameter type mapping / Function in package with VARRAY parameter should clear temporary tables after executing function with varray of numbers type even if an error occurs in the package
rspec ./spec/plsql/procedure_spec.rb:1765 # Parameter type mapping / Function in package with VARRAY parameter should return number array return value
rspec ./spec/plsql/procedure_spec.rb:1769 # Parameter type mapping / Function in package with VARRAY parameter should execute function with string array and return string array output parameter
rspec ./spec/plsql/procedure_spec.rb:1774 # Parameter type mapping / Function in package with VARRAY parameter should execute function with object array and return object array output parameter
rspec ./spec/plsql/procedure_spec.rb:1860 # Parameter type mapping / Function with cursor return value or parameter should find existing function
rspec ./spec/plsql/procedure_spec.rb:1864 # Parameter type mapping / Function with cursor return value or parameter should return cursor and fetch first row
rspec ./spec/plsql/procedure_spec.rb:1870 # Parameter type mapping / Function with cursor return value or parameter should close all returned cursors after block is executed
rspec ./spec/plsql/procedure_spec.rb:1878 # Parameter type mapping / Function with cursor return value or parameter should not raise error if cursor is closed inside block
rspec ./spec/plsql/procedure_spec.rb:1886 # Parameter type mapping / Function with cursor return value or parameter should fetch hash from returned cursor
rspec ./spec/plsql/procedure_spec.rb:1892 # Parameter type mapping / Function with cursor return value or parameter should fetch all rows from returned cursor
rspec ./spec/plsql/procedure_spec.rb:1898 # Parameter type mapping / Function with cursor return value or parameter should fetch all rows as hash from returned cursor
rspec ./spec/plsql/procedure_spec.rb:1904 # Parameter type mapping / Function with cursor return value or parameter should get field names from returned cursor
rspec ./spec/plsql/procedure_spec.rb:1910 # Parameter type mapping / Function with cursor return value or parameter should return output parameter with cursor and fetch first row
rspec ./spec/plsql/procedure_spec.rb:1916 # Parameter type mapping / Function with cursor return value or parameter should return output parameter with cursor and fetch all rows as hash
rspec ./spec/plsql/procedure_spec.rb:1922 # Parameter type mapping / Function with cursor return value or parameter should execute function with cursor parameter and return record
rspec ./spec/plsql/procedure_spec.rb:1974 # Parameter type mapping / Function with typed ref cursor return value should return cursor and fetch first row
rspec ./spec/plsql/procedure_spec.rb:1980 # Parameter type mapping / Function with typed ref cursor return value should fetch hash from returned cursor
rspec ./spec/plsql/procedure_spec.rb:1986 # Parameter type mapping / Function with typed ref cursor return value should fetch all rows from returned cursor
rspec ./spec/plsql/sql_statements_spec.rb:59 # SQL statements / SELECT should select first result
rspec ./spec/plsql/sql_statements_spec.rb:64 # SQL statements / SELECT should prefetch only one row when selecting first result
rspec ./spec/plsql/sql_statements_spec.rb:70 # SQL statements / SELECT should select one value
rspec ./spec/plsql/sql_statements_spec.rb:74 # SQL statements / SELECT should return nil when selecting non-existing one value
rspec ./spec/plsql/sql_statements_spec.rb:78 # SQL statements / SELECT should prefetch only one row when selecting one value
rspec ./spec/plsql/sql_statements_spec.rb:84 # SQL statements / SELECT should select all results

$

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions