动态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...