如何在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
答案 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