我正在尝试使这个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>
答案 0 :(得分:1)
:lastName
是否是绑定变量?我不知道ASP,但perl或java或C(oci)都不会这样。这些语言不允许在字符串文字(引号)中绑定变量,而是必须将其写为
AND UPPER(b.last_nm) LIKE UPPER( '%' || :lastName || '%' )
不幸的是我没有看到这可能导致无效的字符错误,但也许它令人困惑的ASP所以实际传递给oracle的东西搞砸了。只是一个猜测。