title: Passing TABLE type as parameter to PLSQL Procedure
body: <p>I have a plsql block like so that basically sets bunch of flags in a collection to run procedures in a package:</p>
  
  <pre><code>declare
  
    TYPE tRunFlagRec IS RECORD(tRunFlag BOOLEAN);
    TYPE tRunFlagTab IS TABLE OF tRunFlagRec INDEX BY VARCHAR2(64);
    vValidationsTab tRunFlagTab;
  
  begin
  
    vValidationsTab('some_validation_1').tRunFlag := true;
    vValidationsTab('some_validation_2').tRunFlag := true;
    vValidationsTab('some_validation_3').tRunFlag := true;
    vValidationsTab('some_validation_4').tRunFlag := true;
  
    owner.validation_pkg.main(pRunFlags =&gt; vValidationsTab);
  
  end;
  </code></pre>
  
  <p>And a procedure with some if statements that calls other procedures based on the flags it receives:</p>
  
  <pre><code>  --declared in package
    TYPE tRunFlagRec IS RECORD(tRunFlag BOOLEAN);
    TYPE tRunFlagTab IS TABLE OF tRunFlagRec INDEX BY VARCHAR2(64);
    vValidationsTab tRunFlagTab;
  
  PROCEDURE MAIN(pRunFlags in tRunFlagTab) IS
  
      vSome_validation_1_FLAG  BOOLEAN := pRunFlags('FLAG_1').tRunFlag;
      vSome_validation_2_FLAG  BOOLEAN := pRunFlags('FLAG_2').tRunFlag;
      vSome_validation_3_FLAG  BOOLEAN := pRunFlags('FLAG_3').tRunFlag;
      vSome_validation_4_FLAG  BOOLEAN := pRunFlags('FLAG_4').tRunFlag;
  
    BEGIN
      DBMS_OUTPUT.PUT_LINE('Checking for 1');
      IF vSome_validation_1_FLAG THEN
        GET_SOME_VALIDATION_1();
      ELSE
        DBMS_OUTPUT.PUT_LINE('Run Flag set to False. Skipping...');
      END IF;
      DBMS_OUTPUT.PUT_LINE('Checking for 2');
      IF vSome_validation_2_FLAG THEN
        GET_SOME_VALIDATION_2();
      ELSE
        DBMS_OUTPUT.PUT_LINE('Run Flag set to False. Skipping...');
      END IF;
      DBMS_OUTPUT.PUT_LINE('Checking for 3');
      IF vSome_validation_3_FLAG THEN
        GET_SOME_VALIDATION_3();
      ELSE
        DBMS_OUTPUT.PUT_LINE('Run Flag set to False. Skipping...');
      END IF;
      DBMS_OUTPUT.PUT_LINE('Checking for 4');
      IF vSome_validation_4_FLAG THEN
        GET_SOME_VALIDATION_4();
      ELSE
        DBMS_OUTPUT.PUT_LINE('Run Flag set to False. Skipping...');
      END IF;
    END;
  </code></pre>
  
  <p>I'm getting the error: PLS-00306: wrong number or types of arguments in call to 'MAIN'. Any ideas?</p>