title: Why does perl DBI adds special characters <*> (less than asterisk greater than) to prepared statement (Oracle)?
body: <p>I'd like to use a prepared statement with perl DBI (version 5.16.3) to update a row in an Oracle database table.</p>
  
  <pre><code>my $query = 'update THE_TABLE set (COLUMN_ONE = ?, COLUMN_TWO = ?,
               MODIFY_DATE = SYSDATE) where ID = ?';
  my $statement_update = $db_handle-&gt;prepare($query) or die 'DB Error: ' . $db_handle-&gt;errstr;
  $statement_update-&gt;execute(1, 1, '123456789') or die 'DB Error: ' . $statement_update-&gt;errstr;
  </code></pre>
  
  <p>When executing, perl DBI is adding a special &lt;*> symbol group to the statement and that is causing the error: </p>
  
  <blockquote>
    <p><code>DBD::Oracle::st execute failed: ORA-00907: missing right parenthesis (DBD ERROR: error possibly near &lt;*&gt; indicator at char 31 in 'update THE_TABLE set (COLUMN_ONE &lt;*&gt;= :p1, COLUMN_TWO = :p2, MODIFY_DATE = SYSDATE) where ID = :p3') [for Statement "update THE_TABLE set (COLUMN_ONE = ?, COLUMN_TWO = ?, MODIFY_DATE = SYSDATE) where ID = ?" with ParamValues: :p1=1, :p2=1, :p3='123456789'] at a_perl_script.pl line ...</code></p>
  </blockquote>
  
  <p>With symbolhound I could find <a href="https://www.nntp.perl.org/group/perl.beginners/2011/04/msg116425.html" rel="nofollow noreferrer">this page</a>, where it looks like others met the same thing. And it looks like it is random where perl DBI puts the &lt;*> symbols.</p>
  
  <p>How could I adjust perl DBI to properly make this statement?</p>