为什么我的连词不允许我在结尾添加%?

问题描述 投票:0回答:2
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
oracle plsql plsqldeveloper
2个回答
2
投票

当你使用双引号时,它被解释为一个标识符。

with t ("ab", "%") as (
select 1, 2 from dual
)
select concat("ab", "%") from t;

CO
--
12

0
投票

应该像这样。

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)||'%';

使用单引号(双引号用于标签,而不是字面值),然后把通配符和文本放在一起。

© www.soinside.com 2019 - 2024. All rights reserved.