动态SQL,如何编码'';到动态SQL?
早上好动态SQL,如何编码'';到动态SQL?,sql,oracle,Sql,Oracle,早上好 select CASE t.gift_club_start_date WHEN ' ' THEN ' ' ELSE SUBSTR(t.gift_club_start_date,5,2)|| '/' ||SUBSTR(t.gift_club_start_date,7,2)|| '/' ||SUBSTR(t.gift_club_start_date,1,4) END from GIFT t 这显示如果行为空,则显示为空 我尝试用动态SQL来编写
select CASE t.gift_club_start_date
WHEN ' ' THEN ' '
ELSE SUBSTR(t.gift_club_start_date,5,2)|| '/' ||SUBSTR(t.gift_club_start_date,7,2)|| '/' ||SUBSTR(t.gift_club_start_date,1,4)
END
from GIFT t
这显示如果行为空,则显示为空
我尝试用动态SQL来编写这段代码
'select CASE t.gift_club_start_date
WHEN '' '' THEN '' ''
ELSE SUBSTR(t.gift_club_start_date,5,2)|| ''/'' ||SUBSTR(t.gift_club_start_date,7,2)|| ''/'' ||SUBSTR(t.gift_club_start_date,1,4)
END
from GIFT t'
但当行为空时,输出显示此//
那么,如何正确地编码以显示空行呢?此行<代码>当为“”,然后为“”
谢谢,所以mcuh您可以使用|CHR(39)
基本上,您可以使用double
”
来解决:
SQL> declare
2 vSQL varchar2(100);
3 vVar varchar2(100);
4 begin
5 vSQL := 'select '' '' from dual';
6 execute immediate vSQL into vVar;
7 dbms_output.put_line('result:<' || vVar || '>');
8 end;
9 /
result:< >
SQL> declare
2 vSQL varchar2(100);
3 vVar varchar2(100);
4 begin
5 vSQL := 'select '' '' from dual';
6 execute immediate vSQL into vVar;
7 dbms_output.put_line('result:<' || vVar || '>');
8 end;
9 /
result:< >
SQL> declare
2 vSQL varchar2(100);
3 vVar varchar2(100);
4 begin
5 vSQL := q'[select ' ' from dual]';
6 execute immediate vSQL into vVar;
7 dbms_output.put_line('result:<' || vVar || '>');
8 end;
9 /
result:< >
WHEN t.gift_club_start_date is NULL THEN...