title: Remove Special Characters from an Oracle String
body: <p>From within an Oracle 11g database, using SQL, I need to remove the following sequence of special characters from a string, i.e.</p>
  
  <pre><code>~!@#$%^&amp;*()_+=\{}[]:”;’&lt;,&gt;./?
  </code></pre>
  
  <p>If any of these characters exist within a string, except for these two characters, which I DO NOT want removed, i.e.: <code>"|"</code> and <code>"-"</code> then I would like them completely removed.</p>
  
  <p>For example: </p>
  
  <p>From: <code>'ABC(D E+FGH?/IJK     LMN~OP'</code> To: <code>'ABCD EFGHIJK     LMNOP'</code> after removal of special characters.</p>
  
  <p>I have tried this small test which works for this sample, i.e:</p>
  
  <pre><code>select regexp_replace('abc+de)fg','\+|\)') from dual
  </code></pre>
  
  <p>but is there a better means of using my sequence of special characters above without doing this string pattern of <code>'\+|\)'</code> for every special character using Oracle SQL?</p>