title: Oracle Query - Missing Defines
body: <p>I created a very simple table:</p>
  
  <pre><code>CREATE TABLE TMP ("ID" VARCHAR2(20 BYTE));
  </code></pre>
  
  <p>Then tried to do this:      </p>
  
  <pre><code>DECLARE
    whatever varchar2(20) := :bananas;
  BEGIN
    MERGE INTO tmp t USING 
      (SELECT whatever AS this_id FROM DUAL) d 
    ON (t.id = d.this_id) 
      WHEN NOT MATCHED THEN 
        INSERT (id) VALUES (d.this_id);
  END;
  </code></pre>
  
  <p>And then enter binds </p>
  
  <p><img src="https://i.stack.imgur.com/aqqDz.png" alt="enter image description here"></p>
  
  <p>And get this error:</p>
  
  <pre><code>Error starting at line : 1 in command -
  DECLARE
    whatever varchar2(20) := :bananas;
  BEGIN
    MERGE INTO tmp2 t USING 
      (SELECT whatever AS this_id FROM DUAL) d 
    ON (t.id = d.this_id) 
      WHEN NOT MATCHED THEN 
         INSERT (id) VALUES (d.this_id);
  END;
  Error report -
  Missing defines
  </code></pre>
  
  <p>I've had no luck figuring out what it wants. If I replace ':bananas' with a value like 'a' it works, but not when I use a variable and bind the value. Anyone know whats wrong with my query? Thanks.</p>
  
  <pre><code>Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
  PL/SQL Release 11.2.0.4.0 - Production
  "CORE   11.2.0.4.0  Production"
  TNS for IBM/AIX RISC System/6000: Version 11.2.0.4.0 - Production
  NLSRTL Version 11.2.0.4.0 - Production
  </code></pre>
  
  <p><em>edit</em>:
  I've just noticed that the error is not preventing the data from being merged correctly... The error is still concerning though</p>