繁体   English   中英

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

[英]How to use substitute variable in sqlplus? IN condition

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

当我对名称进行硬编码时,它能够显示记录。 例如,我输入的名称是“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!')

MESSAGE
--------------------
Hello, Mom!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM