Developers Getting Started With i2b2
Space shortcuts
Space Tools
Developers Getting Started With i2b2 getstarted

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

It is possible to invoke the procedure to output a data table from a table definition directly from a SQL client. This is useful primarily for debugging and for developers.


Running in SQL (by platform)

PostgreSQL 

  1. Load the updated script

    \i /path/to/rpdo_refcursor.sql
  2. Run the procedure

    BEGIN;
     -- 'cur' is the default cursor name
     CALL usp_rpdo2(
       p_table_instance_id  := 322,
       p_result_instance_id := NULL,
       p_min_row            := NULL,
       p_max_row            := NULL
     );
     -- retrieve all rows from the cursor
     FETCH ALL FROM cur;
    COMMIT;

Notes:

  • Because usp_rpdo2 now uses an INOUT cur REFCURSOR DEFAULT 'cur', you don’t need to supply a cursor name.
  • The FETCH ALL FROM cur returns every column of your pivoted result set.

...

Oracle

  1. Load the script

    @/path/to/your_oracle_script.sql
  2. Bind and call

    VAR rc REFCURSOR;
    EXEC usp_rpdo2(
     p_table_instance_id  => 322,
     p_result_instance_id => NULL,
     p_min_row            => NULL,
     p_max_row            => NULL,
     p_refcursor          => :rc
    );
  3. View the cursor

    PRINT rc;

Notes:

  • VAR rc REFCURSOR declares a bind variable in SQL*Plus/SQL Developer.
  • PRINT rc streams the full result set into your grid or console.

...

SQL Server 

  1. Load the script

    :r C:\path\to\rpdo2.sql
  2. Execute the procedure

    EXEC dbo.usp_rpdo2
     @TABLE_INSTANCE_ID  = 322,
     @RESULT_INSTANCE_ID = NULL,
     @MIN_ROW            = NULL,
     @MAX_ROW            = NULL;
  3. View results

    • By default, the proc’s dynamic SQL writes its pivoted output directly to your result grid.
    • Optionally, to capture it in a temp table for further querying:

      CREATE TABLE #my_results (... define columns ...);
      INSERT INTO #my_results
      EXEC dbo.usp_rpdo2
      @TABLE_INSTANCE_ID  = 322,
      @RESULT_INSTANCE_ID = NULL,
      @MIN_ROW            = NULL,
      @MAX_ROW            = NULL;
      
      SELECT * FROM #my_results;
      DROP TABLE #my_results;

Notes:

  • Local # tables created inside a proc aren’t accessible afterward, so if you need post‑proc querying, use a global temp table (##…) or insert the output as shown above.
  • In SSMS, you’ll also see the rows immediately in the grid after EXEC.
Developers Getting Started With i2b2 getstarted