all groups > sql server reporting services > june 2006 >
You're in the

sql server reporting services

group:

Parameterized query that will work for both Oracle and SQL Server


Parameterized query that will work for both Oracle and SQL Server John A
6/2/2006 5:49:01 PM
sql server reporting services: Hi, I have a dataset that I am using the following SQL DML to gather the data
select * from hermes.vwsurveyprepostresults where ssn = ? and surveydate = ?

This works fine when the Shared Data Source is Oracle. However when I am
using a SQL Server Shared Data Source I need to change it to the following
with the Native SQL Client
select * from hermes.vwsurveyprepostresults where ssn = @SSN and surveydate
= @SURVEYDATE

However when I change it to use OLEDB for SQL Server as a shared data source
and revert to the ? as parameter place holders I get the following error -

An error has occurred during report processing. (rsProcessingAborted)
Query execution failed for data set 'HRAII'. (rsErrorExecutingCommand)
Incorrect syntax near '?'. Incorrect syntax near '?'.

Is there a parameterized query that will work for both Oracle and SQL Server?


--
Thank you,
Re: Parameterized query that will work for both Oracle and SQL Server Steffi
6/3/2006 12:00:00 AM
Try to set Oracle a linked server and using store procedure as the query
string.
You can generate you SQL synatx in store procedure depending on the input
parameter.
HTH

[quoted text, click to view]

Re: Parameterized query that will work for both Oracle and SQL Ser John A
6/3/2006 3:40:02 PM
Is this the easiest way to do it? Seems like a hack, inelegant and not
appealing.

Currently I am trying to figure out how to use a Web Service as my data
source - XML. That way I can control via a config file which database to
pull from and the paremeters will be the same.

Both these solutions seem like a convulusion of what should be a relatively
easy thing to do. Pass an ANSI-SQL query a parameter using OLEDB as the
provider and have the parameter signature always be the same. I cannot
believe this is such a difficult thing. If I did not know better I would
swear that this is a bug.

--
Thank you,
John


[quoted text, click to view]
Re: Parameterized query that will work for both Oracle and SQL Server Bruce L-C [MVP]
6/4/2006 10:12:00 PM
If you use ODBC against both then you will be able to use the same query.
But, keep in mind that Oracle and SQL Server can have different syntax. But,
if you are using the more recent Oracle (like 9i or 10i ... not sure what
the latest version is) then Oracle has started to support join syntax (inner
join, left join etc). Otherwise, if you get complicated at all then the
syntax can vary.


--
Bruce Loehle-Conger
MVP SQL Server Reporting Services

[quoted text, click to view]

Re: Parameterized query that will work for both Oracle and SQL Ser weilu NO[at]SPAM online.microsoft.com
6/5/2006 5:41:45 AM
Hi John,

Thank you for your post.

OLE DB is a Microsoft's strategic low-level application program interface
(API) for access to different data sources.

An application using OLE DB would use this request sequence:

Initialize OLE.
Connect to a data source.
Issue a command.
Process the results.
Release the data source object and uninitialize OLE.

The Oledb provide just pass the sql command to the database engine to
execute and get the recordset from the engine.

Since the syntax of SQL Server only support the variable marked with @, you
could not use other mark to specify it's a parameter.

I think Steffi's suggestion is a great suggest for you. You could add a
linked server in the sql server and use the stored procedure to get the
result.

Configuring Linked Servers
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/adminsql/ad
_1_server_4uuq.asp

Hope this will be helpful!

Sincerely,

Wei Lu
Microsoft Online Community Support

==================================================

When responding to posts, please "Reply to Group" via your newsreader so
that others may learn and benefit from your issue.

==================================================
This posting is provided "AS IS" with no warranties, and confers no rights.
Re: Parameterized query that will work for both Oracle and SQL Ser John A
6/5/2006 3:45:01 PM
Thanks for all the help guys but I am leaning more toward using a Web Service
AKA XML as my data source. Played around with it over the weekend and got it
working. This actually has a number of benefits for me. The main one being
greater control over what is happening from a programatic stand point. I
have nothing against using Stored Procedures per se but I think that I would
run into problems linking the databases as I do not have much control over
our Oracle databases.

--
Thank you,
John


[quoted text, click to view]
Re: Parameterized query that will work for both Oracle and SQL Ser John A
6/5/2006 3:48:02 PM
Thanks Bruce, this seems like the easiest and best short term solution.
--
Thank you,
John


[quoted text, click to view]
Re: Parameterized query that will work for both Oracle and SQL Ser Rob
7/21/2006 9:39:01 AM
John,

I wanted to put this post because I was trying to do the same thing that you
are, using parameters with Reporting Services to hit an Oracle DB.

The only way that I found out how to get this to work is by using a ":"
instead of the "@".

So, for example:
SELECT *
FROM sometable x
WHERE x.auth_date >= to_date(:param_start, 'mm/dd/yyyy')

Then I set my Report Parameter(param_start) as a string value.

It works fine for me right now, I do wonder when I try to roll it up into a
stored proc that if it will work or not. I hope this helps others out there.

Rob Cuscaden

[quoted text, click to view]
Re: Parameterized query that will work for both Oracle and SQL Ser LaurieT
10/16/2006 11:45:01 AM
Bruce -- I am just trying your suggestion, since I have the same issue. In
my query, how do I write the parameters (with a '?', ':' or '@')?

I have tried all 3 with no success.
When I try '?' - I get an error saying that "Cannot add multi value query
parameter '?' for data set 'Report_main' because it is not supported by the
data extension."
When I try ':' - it says incorrect syntax near ':'
When I try '@' - it says "The data extension ODBC does not support named
parameters. Use unnamed parameters instead."

Thanks in advance for your help.
--
LaurieT


[quoted text, click to view]
Re: Parameterized query that will work for both Oracle and SQL Ser weilu NO[at]SPAM online.microsoft.com
10/17/2006 12:00:00 AM
Hello Laurie,

Have you tried the suggestion Rob Provided?

===========================
From: =?Utf-8?B?Um9i?= <Rob@discussions.microsoft.com>
Subject: Re: Parameterized query that will work for both Oracle and SQL Ser
Date: Fri, 21 Jul 2006 09:39:01 -0700
Newsgroups: microsoft.public.sqlserver.reportingsvcs

John,

I wanted to put this post because I was trying to do the same thing that
you
are, using parameters with Reporting Services to hit an Oracle DB.

The only way that I found out how to get this to work is by using a ":"
instead of the "@".

So, for example:
SELECT *
FROM sometable x
WHERE x.auth_date >= to_date(:param_start, 'mm/dd/yyyy')

Then I set my Report Parameter(param_start) as a string value.

It works fine for me right now, I do wonder when I try to roll it up into a
stored proc that if it will work or not. I hope this helps others out
there.

Rob Cuscaden

===========================

Sincerely,

Wei Lu
Microsoft Online Community Support

==================================================

When responding to posts, please "Reply to Group" via your newsreader so
that others may learn and benefit from your issue.

==================================================
This posting is provided "AS IS" with no warranties, and confers no rights.
Re: Parameterized query that will work for both Oracle and SQL Ser LaurieT
10/17/2006 5:23:01 AM
Yes -- I think so.

I was already using ":" variables in my query. But I was connecting to the
database using an Oracle driver. So I set up a ODBC connection to my SQL
Server database, then I created a new datasource using ODBC and pointed to
the SQL Server ODBC connection. I get the following error: incorrect syntax
near the ':'.

I must be missing something?

--
LaurieT


[quoted text, click to view]
Re: Parameterized query that will work for both Oracle and SQL Ser Garth H
10/17/2006 6:18:23 AM
I've been working with some of the same issues and found that you can't
really blur the like between the Oracle and SQL Server data.

You have to query the Oracle db with Oracle syntax. If you want to roll
everything up to a SQL Server OLTP or OLAP db, design an SSIS package
and import your Oracle & SQL data into a single source.

I know it's not the answer you wanted, but in the end it will be faster.


--
Garth H
webdev511@spamcop.net
Microsoft Certified Professional
Re: Parameterized query that will work for both Oracle and SQL Ser weilu NO[at]SPAM online.microsoft.com
10/18/2006 2:44:30 AM
Hello Laurie,

I agree with Garth that design a SSIS package(in SQL 2005) or a DTS package
(in SQL 2000) will be a faster way to do this.

Also, you may try to build up a Linked server in SQL Server which point to
the Oracle database.

Sincerely,

Wei Lu
Microsoft Online Community Support

==================================================

When responding to posts, please "Reply to Group" via your newsreader so
that others may learn and benefit from your issue.

==================================================
This posting is provided "AS IS" with no warranties, and confers no rights.
Re: Parameterized query that will work for both Oracle and SQL Ser weilu NO[at]SPAM online.microsoft.com
10/20/2006 12:00:00 AM
Hello,

How is everything going? Please feel free to let me know if you need any
assistance.

Sincerely,

Wei Lu
Microsoft Online Community Support

==================================================

When responding to posts, please "Reply to Group" via your newsreader so
that others may learn and benefit from your issue.

==================================================
This posting is provided "AS IS" with no warranties, and confers no rights.
AddThis Social Bookmark Button