При появлении запроса заключите в кавычки строку подстановки, не указывайте текст подстановки в самом запросе.
SQL> select &message from dual;
Enter value for message: hello mom
old 1: select &message from dual
new 1: select hello mom from dual
select hello mom from dual
*
ERROR at line 1:
ORA-00904: "HELLO": invalid identifier
SQL> select &message from dual;
Enter value for message: 'Hello, Mom!'
old 1: select &message from dual
new 1: select 'Hello, Mom!' from dual
'HELLO,MOM!
-----------
Hello, Mom!
SQL> create table so_ampersand (message varchar2(20));
Table created.
SQL> insert into so_ampersand values ('Hello, Mom!');
1 row created.
SQL> commit;
Commit complete.
SQL> select * from so_ampersand where message in (&mess);
Enter value for mess: 'Hello, Mom!'
old 1: select * from so_ampersand where message in (&mess)
new 1: select * from so_ampersand where message in ('Hello, Mom!')
MESSAGE
--------------------
Hello, Mom!
SQL>
Или наоборот ...
SQL> select * from so_ampersand where message in ('&mess2');
Enter value for mess2: Hello, Mom!
old 1: select * from so_ampersand where message in ('&mess2')
new 1: select * from so_ampersand where message in ('Hello, Mom!')
MESSAGE
--------------------
Hello, Mom!