当我实际使用与号作为输入时,我遇到了一个错误,它不返回记录
当我对名称进行硬编码时,它可以显示记录。 例如,我输入的名称是“ customer something”,之间有一个空格。
输入与不能接受空格有关吗?那么如何解决它返回IN内的记录呢?
WHERE
name IN ('&name');
当我实际使用与号作为输入时,我遇到了一个错误,它不返回记录
当我对名称进行硬编码时,它可以显示记录。 例如,我输入的名称是“ customer something”,之间有一个空格。
输入与不能接受空格有关吗?那么如何解决它返回IN内的记录呢?
WHERE
name IN ('&name');
在出现提示时引用替换字符串,不要在查询本身中引用替换文本。
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!