tar*_*ate 61
我继续忘记这一点并再次回到它!我认为最好的答案是迄今为止提供的答复的组合.
首先,&是sqlplus/sqldeveloper中的变量前缀,因此问题 - 当它出现时,它应该是变量名的一部分.
SET DEFINE OFF将以这种方式停止sqlplus解释.
但是如果你需要使用sqlplus变量和文字和字符呢?
例如
set define on
set escape on
define myvar=/forth
select 'back\\ \& &myvar' as swing from dual;
Run Code Online (Sandbox Code Playgroud)
生产:
old 1: select 'back\\ \& &myvar' from dual
new 1: select 'back\ & /forth' from dual
SWING
--------------
back\ & /forth
Run Code Online (Sandbox Code Playgroud)
如果要使用其他转义字符:
set define on
set escape '#'
define myvar=/forth
select 'back\ #& &myvar' as swing from dual;
Run Code Online (Sandbox Code Playgroud)
设置特定的转义字符时,您可能会看到"SP2-0272:转义字符不能是字母数字或空格".这可能意味着你已经定义了转义字符,并且事情变得非常自我指涉.避免这个问题的干净方法是首先设置逃逸:
set escape off
set escape '#'
Run Code Online (Sandbox Code Playgroud)
ham*_*mcn 16
如果你是从SQLPLUS使用它
SET DEFINE OFF
Run Code Online (Sandbox Code Playgroud)
阻止它踩踏并作为一个特例
小智 11
另一种解决方案,使用串联和chr函数:
select 'J' || chr(38) || 'J Construction' from dual;
Run Code Online (Sandbox Code Playgroud)
小智 5
您可以插入诸如'J'||'&'||'Construction'这样的字符串。效果很好。
insert into table_name (col_name) values('J'||'&'||'Construction');
Run Code Online (Sandbox Code Playgroud)
INSERT INTO TEST_TABLE VALUES('Jonhy''s Sport &'||' Fitness')
Run Code Online (Sandbox Code Playgroud)
此查询的输出:Jonhy's Sport & Fitness
| 归档时间: |
|
| 查看次数: |
175856 次 |
| 最近记录: |