SQL Apprentice Question
I am having one problem with the query. Please see below the query. 
Declare @p_code_type_cd varchar (200),---3599, 6023 
 @p_lang_cd varchar (10),--39 
 @p_code_val varchar (2000), --67330000, 67000000 
Select @p_code_type_cd = '3599,6023', @p_lang_cd = '39', @p_code_val = 
'67330000, 67000000' 
select code_type_cd, code_val, desc_text 
from code_tbl where  code_type_cd in (@p_code_type_cd) 
and code_val in (@p_code_val)and lang_cd  = @p_lang_cd 
When this query is executed it produces no result. I analyzed and found 
that the query which is being executed is converted as mentioned 
below:- 
select code_type_cd, code_val, desc_text 
from code_tbl where  code_type_cd in (3599,6023) 
and code_val in (67330000, 67000000) and lang_cd  = 39 
i think it is missing few single quotes value. I am just confused how 
to add these quotes in the query so that it becomes like.. 
select code_type_cd, code_val, desc_text 
from code_tbl where  code_type_cd in ('3599','6023') 
and code_val in ('67330000','67000000')and lang_cd  = '39' 
Celko Answers
Actually, you are missing a proper data model.  Data element names like 
"code_type_cd" are absurd.  A code and a type are different kinds of 
attributes,  so you should have names like "postal_code" or 
"blood_type"  instead of a list of adjectives looking for a noun.  Same 
problem with "code_val" 
What kind of code is in "code_tbl"? This name implies that you are 
dealing with furniture.   It must be ONE AND ONE KIND of code to be a 
valid table.  There is no such thing as a "Magical, Universal Does 
Everything" code table in an RDBMS.  Surely you have not mixed data and 
metadata in a schema to build a OTLT or MUCK?  Google those words and 
start your research. 
You also do not seem to know that SQL is compiled, so passing a string 
is not like writing code on the fly in an interpreter. Without DDL and 
sensible data element names, nobody can really help you.  But based on 
past experience, when the schema is bad, the kludge is usually dynamic 
SQL. 
The reason people give you that kludge is that it gets rid of you 
faster than actually soving the root problems.  That could take more 
time and effort than we want to give  away for free in a newsgroup. 
Please get some real help  somewhere else.
Tuesday, May 09, 2006
Subscribe to:
Post Comments (Atom)

No comments:
Post a Comment