Asp.net Can';t在ASPX中筛选Oracle SELECT
ASP.Net 2数据源的一部分:Asp.net Can';t在ASPX中筛选Oracle SELECT,asp.net,oracle,ora-01722,Asp.net,Oracle,Ora 01722,ASP.Net 2数据源的一部分: SelectCommand="SELECT BU.P_GEAC_CORP_CD AS Corp_Code, BU.Business_unit as Abbreviation, CC.DEPTID AS Cost_Center, CC.DESCR AS Description
SelectCommand="SELECT BU.P_GEAC_CORP_CD AS Corp_Code,
BU.Business_unit as Abbreviation,
CC.DEPTID AS Cost_Center,
CC.DESCR AS Description
FROM fstst.PS_P_CATR_BUDPT_VW CC,
fstst.ps_p_bus_unit_cnv BU
WHERE BU.Business_unit = CC.Business_unit">
这提供了一个有效的GridView。显示器显示
CC.DESCR AS Description
是文本(非数字)
我想使用文本框作为“包含”过滤器,即,如果我将“恢复”放在文本框中,
我想添加数据源
AND CC.DESCR Like '%Recovery%'
到SQL。如果我硬编码那行代码,它就行了
但如果我加上
<SelectParameters>
<asp:ControlParameter ControlID="Dept_Name"
Name="DName"
PropertyName="Text"
Type="string" />
</SelectParameters>
在SQL中,当文本框为空时,我不会得到任何结果,而ORA-01722:当我在文本框中输入字符时,该数字无效。当使用带有字符串的like语句时,需要在文本周围使用单引号 它需要看起来像
AND CC_DESCR LIKE '%VALUE%'
谢谢你的尝试,“小鸟。”
不幸的是,Oracle服务器只打开了最小的日志记录
除此之外,当我访问DBA时,stackoverflow不知何故被列入了我们公司的禁止网站名单。所以我无法分享答案
这一定是关于Oracle的一个鲜为人知的事实,因为我们的两位DBA也没有抓住它:Oracle认为无论上下文如何,plus都代表数字
当我将+更改为|时,它就开始工作了,谢谢,但是在和CC.DESCR中有单引号,比如“%”+:DName+“%”,顺便说一下,像“%:DName%”这样的CC.DESCR也会得到同样的结果如果你指的是SQL,这是个问题。如果你的意思是别的,我不知道你的意思。我希望看到你的SQL输出是在ORACLE中运行的,而不是你如何编码的。我想要运行时SQL。我不知道如何将参数化ASP.Net SQL放入SQLPlus提示符。如果您有调试器,您应该能够获得它。此外,检查日志,您可能会幸运地在那里看到输出。
|
实际上是ANSI标准的字符串连接运算符,因此找到它并不罕见。
AND CC_DESCR LIKE '%VALUE%'