oracle在字符串查询中转义单引号

时间:2014-03-22 23:06:52

标签: oracle plsql

如何在plsql块中转义字符串查询中的单个字符。我尝试用双引号逃脱,但似乎没有工作。我想从一段时间后选择数据,但我的日期变量是YYMM格式,我将其转换为时间戳或日期时间。

这是代码示例:

declare
datevar     varchar2(4);
stringquery varchar(1000);
begin
stringquery := 'select * from mytable where datetimecol > to_timestamp('||datevar||',''YYMM'')';

For i in stringquery Loop
  do sth

1 个答案:

答案 0 :(得分:1)

两个单引号被解释为字符串中的一个引号,因此您的语句相对正确。也许你想要“datevar”的引用:

stringquery := 'select * from mytable where datetimecol > to_timestamp('''||datevar||''',''YYMM'')';

您可以轻松测试:

select 'select * from mytable where datetimecol > to_timestamp('''||datevar||''',''YYMM'')'
from (select 'x' as datevar from dual) t