title: Using Linked Server TO Oracle for Insert, Update, Delete
body: <p>I have an active Linked Server to an Oracle database and can select data without issue. I need to use this linked server to update, insert, or delete rows FROM the Oracle tables.</p>
  
  <p>I have run at least a dozen different code snippets from StackOverflow in an attempt to make this work. None have. Details:</p>
  
  <p>Sql Sever version 2014
  Oracle version 11g
  Linked Sever to Oracle name: CMDB</p>
  
  <p>Code samples:</p>
  
  <pre><code>DELETE OPENQUERY ("CMDB", 'SELECT * FROM CMDB.CAMPAIGN 
                    WHERE CAMPAIGNIDGUID = ''{6477D6C6-5783-E511-B2E7-005056952C45}''')
  </code></pre>
  
  <blockquote>
    <p>Error: OLE DB provider "OraOLEDB.Oracle" for linked server "CMDB" returned message "艂_".<br>
    OLE DB provider "OraOLEDB.Oracle" for linked server "CMDB" returned message "ROW-00054: Message 54 not found; No message file for product=OLEDB, facility=OraOLEDB (OS 193)".<br>
    Msg 7320, Level 16, State 2, Line 1<br>
    Cannot execute the query "SELECT * FROM CMDB.CAMPAIGN WHERE CAMPAIGNIDGUID = '{6477D6C6-5783-E511-B2E7-005056952C45}'" against OLE DB provider "OraOLEDB.Oracle" for linked server "CMDB".   </p>
  </blockquote>
  
  <pre><code>SELECT * FROM OPENQUERY("CMDB", 'SELECT * FROM CMDB.CAMPAIGN')
  </code></pre>
  
  <blockquote>
    <p>Error: None, returned 83 rows of data</p>
  </blockquote>
  
  <p>Notes: We CANNOT use SSIS. This is in a very restrictive environment and we are limited on what we can use. This is being developed for a job that will PUSH production data from a Sql Server database TO an Oracle schema. All assistance is appreciated.</p>
  
  <p>Thank you</p>