--C#的没问题吧.就看这句sql先定义两个参数: string v_country,string v_province
if (v_country.trim().tostring()=="")
{
:COUNTRY="COUNTRY";
}
else
{
:COUNTRY=v_country;
}if (v_province.trim().tostring()=="")
{
:PROVINCE="PROVINCE";
}
else
{
:PROVINCE=v_province;
}SELECT CITY FROM COM_ZIPCODE WHERE (COUNTRY = :COUNTRY) AND (PROVINCE= :PROVINCE) GROUP BY CITY ORDER BY CITY如果这时候输入的v_country为空的时候,那句sql就变成了SELECT CITY FROM COM_ZIPCODE WHERE (COUNTRY = COUNTRY) AND (PROVINCE= :PROVINCE) GROUP BY CITY ORDER BY CITY这样就可以不用country这个参数了.
if (v_country.trim().tostring()=="")
{
:COUNTRY="COUNTRY";
}
else
{
:COUNTRY=v_country;
}if (v_province.trim().tostring()=="")
{
:PROVINCE="PROVINCE";
}
else
{
:PROVINCE=v_province;
}SELECT CITY FROM COM_ZIPCODE WHERE (COUNTRY = :COUNTRY) AND (PROVINCE= :PROVINCE) GROUP BY CITY ORDER BY CITY如果这时候输入的v_country为空的时候,那句sql就变成了SELECT CITY FROM COM_ZIPCODE WHERE (COUNTRY = COUNTRY) AND (PROVINCE= :PROVINCE) GROUP BY CITY ORDER BY CITY这样就可以不用country这个参数了.
还是不行啊!当我用下面的语句时出错。
sqlSelectCity.Parameters(":PROVINCE").Value = ""
r = sqlSelectCity.ExecuteReader '这一行出错
"Parameter ':PROVINCE': No size set for variable length data type: String."
空值也能查了
SELECT CITY FROM COM_ZIPCODE WHERE (COUNTRY = :COUNTRY) AND (DECODE(PROVINCE,NULL,"",PROVINCE) = :PROVINCE) GROUP BY CITY ORDER BY CITY
语法错误:ORA-01741 illegal zero-length identifier我再试试:
SELECT CITY FROM COM_ZIPCODE WHERE (COUNTRY = :COUNTRY) AND (DECODE(PROVINCE,NULL," ",PROVINCE) = :PROVINCE) GROUP BY CITY ORDER BY CITY
语法错误:ORA-00904: " ": invalid identifier
死脑筋