Details

    • Type: Technical task
    • Status: Open (View Workflow)
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: OTHER
    • Labels:

      Description

      Add support for basic functionality for TYPE .. OBJECT.

      Under terms of this tasks we'll implement declaration of objects with members only. Objects with methods are out of scope of this task.

      This task will however include implementations of simple constructors to initialize members

        var struct_a_b_t:= struct_a_b_t(1,2);
      

      Example

      Creating an object data type and a corresponding table type.

      DROP TYPE struct_a_b_t;
      CREATE TYPE struct_a_b_t AS OBJECT
      (
        a INT,
        b INT 
      );
      / 
      DROP TYPE table_of_struct_a_b_t;
      CREATE TYPE table_of_struct_a_b_t AS TABLE OF struct_a_b_t;
      /
      

      Using the new data types:

      DROP FUNCTION f1;
      CREATE FUNCTION f1 RETURN INT
      AS
        tbl table_of_struct_a_b_t:= table_of_struct_a_b_t();
        rec struct_a_b_t:= struct_a_b_t(10,1);
        a INT;
      BEGIN   
        tbl.extend;
        tbl(1) := rec;
        tbl.extend;   
        tbl(2) := struct_a_b_t(20,2);
        SELECT SUM(a+b) INTO a FROM TABLE(tbl);
        RETURN a;
      END;
      /   
      SELECT f1() FROM DUAL;
      

            F1()
      ----------
      	33
      

      Dropping the data types:

      DROP TYPE table_of_struct_a_b_t;
      DROP TYPE struct_a_b_t;
      

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                bar Alexander Barkov
              • Votes:
                4 Vote for this issue
                Watchers:
                8 Start watching this issue

                Dates

                • Created:
                  Updated: