ASP.NET / Oracle的非法字符错误

时间:2011-10-04 15:01:52

标签: c# asp.net oracle

我正在尝试使这个ASP / SQL语句工作,但我一直得到ORA-01036:非法字符错误。所以,我假设我错过了我的SQL语法的转义字符或类似的东西。

我将这段代码从我的C#代码中转换出来,并将其编码为ASP。

    <asp:SqlDataSource ID="EmployeeSqlDataSource" runat="server"
       ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
       ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>" 
       OnSelecting="EmployeeSqlDataSource_Selecting" 
       SelectCommand="SELECT a.vax_user_id, b.person_id, b.email_id, b.last_nm,  b.first_nm, b.parent_org_unit_cd, a.acceptance_date, a.emp_status_cd
       FROM inet_own.fitness_rwl a, inet_own.employee_info_ldap_snap b
       WHERE a.vax_user_id = b.vax_user_id 
       AND a.emp_status_cd like 'A'
       AND UPPER(b.last_nm) LIKE UPPER('%:lastName%')
       ORDER BY b.parent_org_unit_cd, a.acceptance_date
      ">

     <SelectParameters>
        <asp:ControlParameter ControlID="radTbLastName" Name="lastName" />
     </SelectParameters>
</asp:SqlDataSource>

1 个答案:

答案 0 :(得分:1)

:lastName是否是绑定变量?我不知道ASP,但perl或java或C(oci)都不会这样。这些语言不允许在字符串文字(引号)中绑定变量,而是必须将其写为

 AND UPPER(b.last_nm) LIKE UPPER( '%' || :lastName || '%' )

不幸的是我没有看到这可能导致无效的字符错误,但也许它令人困惑的ASP所以实际传递给oracle的东西搞砸了。只是一个猜测。