Oracle在表中插入逗号分隔的字符串值--

Oracle在表中插入逗号分隔的字符串值--,oracle,Oracle,试图将过程输入参数接受为逗号分隔字符串的整行插入表中,例如,这是一个null字符串“” 以下是我尝试过的: DECLARE I_NPUT VARCHAR2(4000) := 'THIS,IS,AN,Example,null,STRING# This , is ,an,another,ex,null#'The,list,goes,on,on,null''; L_COUNT BINARY_INTEGER; L_ARRAY DBMS_UTILITY.LNAME_ARRAY; BEGIN

试图将过程输入参数接受为逗号分隔字符串的整行插入表中,例如,这是一个null字符串“”

以下是我尝试过的:

DECLARE
  I_NPUT VARCHAR2(4000) := 'THIS,IS,AN,Example,null,STRING# This , is ,an,another,ex,null#'The,list,goes,on,on,null'';
  L_COUNT BINARY_INTEGER;
  L_ARRAY DBMS_UTILITY.LNAME_ARRAY;
BEGIN
  DBMS_UTILITY.COMMA_TO_TABLE(LIST => REGEXP_REPLACE(I_NPUT, '(^|,)', '\1x'), TABLEN => L_COUNT, TAB => L_ARRAY);
  DBMS_OUTPUT.PUT_LINE(L_COUNT);
  FOR I IN 1 .. L_COUNT
  LOOP
    DBMS_OUTPUT.PUT_LINE('Element ' || TO_CHAR(I) || ' of array contains: ' || SUBSTR(L_ARRAY(I), 2));
    INSERT INTO TEST VALUES
      (SUBSTR(L_ARRAY(I), 2)
      );
    COMMIT;
  END LOOP;
END; 
报税表必须是:

COL_1    COL_2   COL_3  COL_4   COL_5  COL_6
-----------------------------------------------
THIS     IS      AN     Example null   STRING

这里p_string-您的输入字符串

让我们看看您的尝试如何。。?我们不是来为您编写软件的,我们是来帮助您解决您无法解决的问题的。通常,列表中的每个元素都包含在单个varchar2列中。编写本文是为了尝试将每个元素插入到它自己的列中(如果不知道列表中有多少元素,则不太可行)。您真的需要所有元素进入一个记录吗?你真的知道列表中元素的数量吗?如果我的字符串输入是this'this,is,AN,Example,null,string#this,is,AN,other,ex,null#'the,list,goes,on,on,null'行的区别是#它需要按行插入表中。
sss := replace(p_string,',',''',''');
sss := regexp_replace(sss, '''null''','null');

EXECUTE IMMEDIATE 'INSERT INTO your_table (COL_1, COL_2, COL_3, COL_4, COL_5, COL_6) 
VALUES (''' ||sss|| ''')';