如何在sqlplus中使用替代变量?条件

当我实际使用与号作为输入时,我遇到了一个错误,它不返回记录

当我对名称进行硬编码时,它可以显示记录。 例如,我输入的名称是“ customer something”,之间有一个空格。

输入与不能接受空格有关吗?那么如何解决它返回IN内的记录呢?

WHERE
    name IN ('&name');
kazmax 回答:如何在sqlplus中使用替代变量?条件

在出现提示时引用替换字符串,不要在查询本身中引用替换文本。

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!
本文链接:https://www.f2er.com/2737954.html

大家都在问