SELECT COUNT(*) INTO E_COUNT FROM EXAMPLE_TABLE WHERE UPPER(EMPLOYEE_USERNAME) LIKE CONCAT(UPPER("example"), "%");
我得到以下错误信息
ORA-00904: "%": invalid identifier
00904. 00000 - "%s: invalid identifier"
*Cause:
*Action:
Error at Line: 1 Column: 111
当你使用双引号时,它被解释为一个标识符。
with t ("ab", "%") as (
select 1, 2 from dual
)
select concat("ab", "%") from t;
CO
--
12
应该像这样。
SELECT COUNT(*) INTO E_COUNT FROM EXAMPLE_TABLE WHERE UPPER(EMPLOYEE_USERNAME) LIKE UPPER('example%');
或者如果你要比较的是一个绑定变量,那么就像这样。
SELECT COUNT(*) INTO E_COUNT FROM EXAMPLE_TABLE WHERE UPPER(EMPLOYEE_USERNAME) LIKE UPPER(:V_EXAMPLE)||'%';
使用单引号(双引号用于标签,而不是字面值),然后把通配符和文本放在一起。