Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>Simply because <a href="http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_4008.htm#BABDEHHG" rel="noreferrer"><code>call</code></a> <em>requires</em> that you add parenthesis, for instance, <code>call my_proc()</code></p> <p>If I set up a little test:</p> <pre><code>SQL&gt; SQL&gt; create or replace procedure test is 2 begin 3 dbms_output.put_line('hi'); 4 end; 5 / Procedure created. </code></pre> <p>And run this several different ways you'll see</p> <pre><code>SQL&gt; exec test hi PL/SQL procedure successfully completed. SQL&gt; call test; call test * ERROR at line 1: ORA-06576: not a valid function or procedure name SQL&gt; call test(); hi Call completed. </code></pre> <p>Why do you need to use <code>call</code>? Isn't <code>exec</code>, <code>execute</code> and <code>begin ... end</code> enough?</p> <hr> <p>Based on your update the problem is the booleans, which <code>call</code> doesn't seem to support. Creating yet another small procedure</p> <pre><code>SQL&gt; create or replace procedure test (Pbool boolean ) is 2 begin 3 if Pbool then 4 dbms_output.put_line('true'); 5 else 6 dbms_output.put_line('false'); 7 end if; 8 end; 9 / Procedure created. SQL&gt; show error No errors. </code></pre> <p>and running it proves this</p> <pre><code>SQL&gt; call test(true); call test(true) * ERROR at line 1: ORA-06576: not a valid function or procedure name </code></pre> <p>I don't quite understand your reasoning behind why you can't use <code>exec</code> or <code>execute</code> but assuming these are both off limits why not just use a traditional, anonymous PL/SQL block?</p> <pre><code>SQL&gt; begin 2 test(true); 3 end; 4 / true PL/SQL procedure successfully completed. </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload