Groups | Blog | Home
all groups > sql server full text search > november 2006 >

sql server full text search : Sending NULL value to parameter of Stored Procedure



Siva
11/6/2006 6:51:01 AM
I am getting the following error, when i am trying to pass the NULL value to
the parameter of Stored procedure. That parameter has been used in Contains
clause in T-SQL.

Server: Msg 7603, Level 15, State 1, Procedure spCMXLSearchReports, Line 256
Syntax error in search condition, or empty or null search condition ''.

This one is working fine, when i am sending any value to the parameter,
which is mentioned Contains caluse.

It's not accepting any null values. Should i use Dynamic query? Can you
please help me.


Hilary Cotter
11/6/2006 12:37:59 PM
You can do an existence check in your header, ie

Create searchproc (@search varchar(200))
as
....
having no value here will have the proc complain when nothing is entered. If
you do some triming of the value of @search in your proc, you could do an
existence check before firing it;

Create searchproc (@search varchar(200))
as
select @search=Replace(@search, char(34)+char(34), char(34))
if len(replace(@search,char(34),'')) > 0
select * from mytable where contains(*, @search)
else
return -1

--
Hilary Cotter
Director of Text Mining and Database Strategy
RelevantNOISE.Com - Dedicated to mining blogs for business intelligence.

This posting is my own and doesn't necessarily represent RelevantNoise's
positions, strategies or opinions.

Looking for a SQL Server replication book?
http://www.nwsu.com/0974973602.html

Looking for a FAQ on Indexing Services/SQL FTS
http://www.indexserverfaq.com



[quoted text, click to view]

Hilary Cotter
11/7/2006 12:00:00 AM
I would avoid dynamic queries as much as possible. Can you post your proc
here, or send it to me offline?

--
Hilary Cotter
Director of Text Mining and Database Strategy
RelevantNOISE.Com - Dedicated to mining blogs for business intelligence.

This posting is my own and doesn't necessarily represent RelevantNoise's
positions, strategies or opinions.

Looking for a SQL Server replication book?
http://www.nwsu.com/0974973602.html

Looking for a FAQ on Indexing Services/SQL FTS
http://www.indexserverfaq.com



[quoted text, click to view]

Siva
11/7/2006 1:31:03 AM
Hi Hilary,

Thanks for your response. I would like to confirm with you one more thing.

My SP is having around 25 parameters apart from Full Text Search
parameter, I would like to execute the SP for remaining parameters and gets
the result.

I would like to exclude only Contains Clause, If the parameter value is
NULL / Empty.

Should i use Dynamic query to achieve the above points?

Thanks,
Siva


[quoted text, click to view]
Hilary Cotter
11/7/2006 7:58:43 PM
Hi Simon, thanks for the links. Erland's arguments are precisely why I am
trying to encourage the OP NOT to use dynamic sql.

--
Hilary Cotter
Director of Text Mining and Database Strategy
RelevantNOISE.Com - Dedicated to mining blogs for business intelligence.

This posting is my own and doesn't necessarily represent RelevantNoise's
positions, strategies or opinions.

Looking for a SQL Server replication book?
http://www.nwsu.com/0974973602.html

Looking for a FAQ on Indexing Services/SQL FTS
http://www.indexserverfaq.com



[quoted text, click to view]

Hilary Cotter
11/7/2006 7:59:45 PM
Oops sorry Simon, I think I missed your point. However until I look at what
he is trying to do, I can't tell if it can't be done without using dynamic
sql.

--
Hilary Cotter
Director of Text Mining and Database Strategy
RelevantNOISE.Com - Dedicated to mining blogs for business intelligence.

This posting is my own and doesn't necessarily represent RelevantNoise's
positions, strategies or opinions.

Looking for a SQL Server replication book?
http://www.nwsu.com/0974973602.html

Looking for a FAQ on Indexing Services/SQL FTS
http://www.indexserverfaq.com



[quoted text, click to view]

Simon Sabin
11/8/2006 12:39:54 AM
Hello Hilary,

With that number of options dynamic SQL is the best option, you need to understand
the implications, SQL injection, multiple plans. Be careful about plans based
on one set of parameters that may not perform well with another set.

Have a read of Erlands Dynamic sql article http://www.sommarskog.se/dynamic_sql.html



Simon Sabin
SQL Server MVP
http://sqlblogcasts.com/blogs/simons


[quoted text, click to view]

Siva
11/8/2006 3:54:02 AM
Hi Hilary,
I have sent the sample SP to your mail id.
Please let me know your comments.
Thanks,
Siva

[quoted text, click to view]
Siva
11/8/2006 3:55:02 AM
Hi Simon,
Thanks for your response. I have gone through the links. It's very
usefull.
Thanks,
Siva

[quoted text, click to view]
Hilary Cotter
11/8/2006 10:30:31 AM
Hi Siva

Your proc consists of creation of a temp table, checking and setting various
parameters and then a multi-table join. This will not benefit from dynamic
sql.

--
Hilary Cotter
Director of Text Mining and Database Strategy
RelevantNOISE.Com - Dedicated to mining blogs for business intelligence.

This posting is my own and doesn't necessarily represent RelevantNoise's
positions, strategies or opinions.

Looking for a SQL Server replication book?
http://www.nwsu.com/0974973602.html

Looking for a FAQ on Indexing Services/SQL FTS
http://www.indexserverfaq.com



[quoted text, click to view]

Simon Sabin
11/14/2006 2:32:55 AM
Hello Siva,

Can you post the SP


Simon Sabin
SQL Server MVP
http://sqlblogcasts.com/blogs/simons


[quoted text, click to view]

AddThis Social Bookmark Button