Solved

OpenQuery error with Oracle

Posted on 2010-08-17
7
598 Views
Last Modified: 2012-05-10
I've got a 2008 SQL Server linked to Oracle 10 server and when writing straight queries with OpenQuery everything works fine.  However I need to create proc with parameters as I will have to perform several additional steps after I get this data.

I'm getting an error that makes no sense to me, so I need an extra set of eyes to help.  I've had the code print off the dynamic SQL and it runs just fine in Oracle, but when I wrap it in the OpenQuery It fails with an incorrect syntax error at a spot that just can't be the issue.  The error is in the WHERE clause.  Message is Incorrect syntax near 'INCIDENT'.

Anybody got an idea about what's going on?




SELECT * FROM OPENQUERY(MAXPROD,'

   SELECT  DISTINCT

     INC.TICKETID,

     INC.SEVERITY,

     INC.VENDOR,

     INC.VENDORTKTNO

   FROM 

     INCIDENT INC

     LEFT OUTER JOIN (

       SELECT DISTINCT

	TICKETID,	

	MIN(CHANGEDATE) AS CHANGEDATE 		 

       FROM TKSTATUS 

       WHERE 

	TKSTATUS.CLASS = 'INCIDENT'

       AND TKSTATUS.STATUS IN ('RESOLVED','CAN','CLOSED')

       GROUP BY TICKETID) STATUSCHANGEDT 

       ON INC.TICKETID = STATUSCHANGEDT.TICKETID         

     LEFT OUTER JOIN WOCHANGE WC

       ON INC.TICKETID = WC.ORGID 	   

   WHERE 

       INC.VENDOR IS NOT NULL	

   AND INC.CREATIONDATE 

       BETWEEN to_date'6/24/2010','mm/dd/yyyy') 

       AND to_date('7/15/2010','mm/dd/yyyy'))



Msg 102, Level 15, State 1, Line 13

Incorrect syntax near 'INCIDENT'.

Open in new window

0
Comment
Question by:BPeb
  • 2
  • 2
  • 2
  • +1
7 Comments
 
LVL 12

Expert Comment

by:mcv22
Comment Utility
Quotes used for strings need to be escaped:

Use ''INCIDENT'' ... ''RESOLVED'' etc
0
 
LVL 12

Expert Comment

by:mcv22
Comment Utility
Something like :


SELECT * FROM OPENQUERY(MAXPROD,'

   SELECT  DISTINCT

     INC.TICKETID,

     INC.SEVERITY,

     INC.VENDOR,

     INC.VENDORTKTNO

   FROM 

     INCIDENT INC

     LEFT OUTER JOIN (

       SELECT DISTINCT

	TICKETID,	

	MIN(CHANGEDATE) AS CHANGEDATE 		 

       FROM TKSTATUS 

       WHERE 

	TKSTATUS.CLASS = ''INCIDENT''

       AND TKSTATUS.STATUS IN (''RESOLVED'',''CAN'',''CLOSED'')

       GROUP BY TICKETID) STATUSCHANGEDT 

       ON INC.TICKETID = STATUSCHANGEDT.TICKETID         

     LEFT OUTER JOIN WOCHANGE WC

       ON INC.TICKETID = WC.ORGID 	   

   WHERE 

       INC.VENDOR IS NOT NULL	

   AND INC.CREATIONDATE 

       BETWEEN to_date(''6/24/2010'',''mm/dd/yyyy'') 

       AND to_date(''7/15/2010'',''mm/dd/yyyy'')')

Open in new window

0
 
LVL 58

Accepted Solution

by:
cyberkiwi earned 450 total points
Comment Utility
double up the single-quotes
0
How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

 
LVL 16

Assisted Solution

by:vdr1620
vdr1620 earned 50 total points
Comment Utility
your missing an open braces near BETWEEN

BETWEEN to_date('6/24/2010','mm/dd/yyyy')
0
 
LVL 5

Author Comment

by:BPeb
Comment Utility
vdr1620 - I think you may have it. I'll take a look in the morning.  The code I included was the output of the dynamic SQL, so the others that commented about the double quotes missed that small point, but I thank you all for helping.
0
 
LVL 58

Expert Comment

by:cyberkiwi
Comment Utility
I admit didn't get that far - the error was complaining about "near INCIDENT", so I noticed all the single single-qoutes.  mcv22 didn't miss it though, he fixed the entire query.
0
 
LVL 5

Author Closing Comment

by:BPeb
Comment Utility
The problem was that the OpenQuery treats the SQL as if it were dynamic and thus requires the double quotes for processing.  Thanks to all for your help.  BTW - The missing bracket turns out to be from editing the code to look right on EE.  
0

Featured Post

Do You Know the 4 Main Threat Actor Types?

Do you know the main threat actor types? Most attackers fall into one of four categories, each with their own favored tactics, techniques, and procedures.

Join & Write a Comment

Audit has been really one of the more interesting, most useful, yet difficult to maintain topics in the history of SQL Server. In earlier versions of SQL people had very few options for auditing in SQL Server. It typically meant using SQL Trace …
How to leverage one TLS certificate to encrypt Microsoft SQL traffic and Remote Desktop Services, versus creating multiple tickets for the same server.
Here's a very brief overview of the methods PRTG Network Monitor (https://www.paessler.com/prtg) offers for monitoring bandwidth, to help you decide which methods you´d like to investigate in more detail.  The methods are covered in more detail in o…
This tutorial demonstrates a quick way of adding group price to multiple Magento products.

744 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

13 Experts available now in Live!

Get 1:1 Help Now