2016-12-28 6 views
1

I ZeilenvorschubOrakel wie Zeilenvorschub verwenden, um von String

CALC_LENGTH :=regexp_replace(CALC_LENGTH, '([\x0B|)', ' '); 
CALC_LENGTH :=translate(CALC_LENGTH, chr(11), '  '); 

übersetzen() oder regexp wird mir immer eine neue Zeile

Beispiel zurückkehren wollen:

if PR is null then 
CALC_LENGTH :=regexp_replace(CALC_LENGTH, '([\x0B|)', ' '); 
else 
CALC_LENGTH := where var1 >var2; 
end if; 

BEGIN 
select ..... from tab1 
'||CALC_LENGTH||' 
    insert into.... 
endif; 

Wenn pr null ist, habe ich ein Ergebnis mit einer leeren Zeile, auch wenn ich trasnalte oder regexp benutze.

select ..... from tab1 

insert into.... 

Ich mag mein Ausgabeer wie unten:

select ..... from tab1 
insert into.... 

Antwort

1

Versuchen Funktion UEBER, es hat für mich viele Male in der Vergangenheit gearbeitet, mit CHR. Ich bin nicht sicher auf den gewünschten Ausgang die ASCII werden zuordnen, können Sie auf den folgenden Block beziehen und halten Sie die gewünschte CHR Aussage (n):

DECLARE 
    CALC_LENGTH VARCHAR2(100); 

BEGIN 
    CALC_LENGTH := 'Hi!'||chr(10)||'i'||CHR(11)||'z'||CHR(12)||'y'||chr(13)||'a'; 
    CALC_LENGTH :=regexp_replace(CALC_LENGTH, '[\x0B|]', ' '); 
    CALC_LENGTH := TRANSLATE(CALC_LENGTH, CHR(10), ' '); 
    CALC_LENGTH := TRANSLATE(CALC_LENGTH, CHR(11), ' '); 
    CALC_LENGTH := TRANSLATE(CALC_LENGTH, CHR(12), ' '); 
    CALC_LENGTH := TRANSLATE(CALC_LENGTH, CHR(13), ' '); 
    DBMS_OUTPUT.PUT_LINE('select ..... from tab1'|| 
         CALC_LENGTH|| 
         'insert into....'); 
END; 
/
+0

gut habe ich versuche Funktion übersetzen, aber es gibt mir immer leere Zeile – Moudiz

+0

Ich denke, anstelle von CHR (13), wenn Sie alle 10, 11, 12 ersetzen, erhalten Sie die gewünschte Ausgabe. Seit Neue Zeile in ASCII ist 10. Abhängig vom Betriebssystem und dem verwendeten Softwarepaket. Eine neue Zeile kann als LF + CR oder CR + LF oder nur CR dargestellt werden. CR stellt Wagenrücklauf dar, der ASCII Code 13 ist. –

+0

Ich fügte die 10 11 12 13 hinzu, ich benutze die calc_length in einer Zeichenkette wie dieser Text = 'Einfügen' || CALC_LENGTH || ' .... würde dieser Effekt? – Moudiz

Verwandte Themen