Я хочу использовать переменную в моем запросе Oracle SQL, которая использует регулярное выражение для фильтрации.Исходный запрос работает нормально, когда я жестко кодирую нужную строку ("TKelly") в запросе SQL:
SELECT Custom_Unique_Name from USERS
WHERE REGEXP_LIKE (Custom_Unique_Name, '^TKelly[^A-Za-z][0-9]*')
Вывод:
CUSTOM_UNIQUE_NAME
------------------
TKelly1
TKelly3
TKelly2
Однако, когда я пытаюсь использоватьпеременная в том же запросе, она не совсем работает одинаково.
variable vname varchar2(20)
exec :vname := 'TKelly';
PL/SQL procedure successfully completed.
SELECT Custom_Unique_Name from USERS
WHERE REGEXP_LIKE (Custom_Unique_Name, '^'|| :vname || [^A-Za-z][0-9]'*');
Вывод:
ORA-00936: missing expression
00936. 00000 - "missing expression"