如何添加双引号和逗号在字符串后,每个分行Oracle plsql

omvjsjqw  于 2023-01-25  发布在  Oracle
关注(0)|答案(1)|浏览(283)

我在一个pl sql块中迭代一个字符串行,我需要在每行中添加双引号和逗号,类似于:

我的街区是:

DECLARE
v_fulltext varchar2(4000):= '                                                          Total   Total   Total Unbalanced Unbalanced       Flex    Nonflex
Journal Entry Source Name    Group ID           Status    Lines Batches Headers    Batches    Headers     Errors     Errors
---------------------------- ------------------ ------- ------- ------- ------- ---------- ---------- ---------- ----------
Manual                                    90005 Error        10       1       1          3          1          0          0
---------------------------- ------------------ ------- ------- ------- ------- ---------- ---------- ---------- ----------
       *** TOTALS ***                                         1       1       1          1          1          0          0';
v_full_text_2 varchar2(4000);
v_full_text_quote varchar2(4000);
counter number := 0;
BEGIN
FOR sumaryline IN(SELECT
            regexp_substr(v_fulltext, '[^('
                                || CHR(13)
                                || CHR(10)
                                || ')]+', 1, level) sumaryline
    FROM
        dual
    CONNECT BY
        regexp_substr(v_fulltext, '[^('
                                || CHR(13)
                                || CHR(10)
                                || ')]+', 1, level) IS NOT NULL)
LOOP
counter := counter +1;
v_full_text_quote := v_full_text_quote||'"'||sumaryline.sumaryline||'"'||chr(10);
  
END LOOP;
 dbms_output.put_line(v_full_text_quote);
END;

该模块的输出为:

我的问题是,我不知道如何添加逗号后的双引号在每一行结束,我尝试添加:

v_full_text_2 := LTRIM (v_full_text_2 || ',' || v_full_text_quote, ',');

但这不管用。问候你。塞萨尔。

lb3vh1jj

lb3vh1jj1#

不是在这里吗?

v_full_text_quote := v_full_text_quote||'"'||sumaryline.sumaryline||'",'||chr(10);
                                                                      ^
                                                                      |
                                                                     here

最后,你只需要去掉最后一个逗号(因为你不需要它):

END LOOP;
v_full_text_quote := rtrim(v_full_text_quote, ',');

相关问题