PL SQL从字符串创建记录数组,由';'

时间:2017-03-15 18:38:29

标签: oracle plsql

我有代码

  DECLARE
   TYPE InvRecTyp IS RECORD (
      invoice_no   VARCHAR2(100),
      customer_no  VARCHAR2(200),
      value        NUMBER); 

   TYPE InvTabTyp IS TABLE OF InvRecTyp INDEX BY BINARY_INTEGER;
   rec_ InvTabTyp;

   temp_ VARCHAR2(32767):=
   'invoice_no1;customer_no1;1
    invoice_no2;customer_no2;2
    invoice_no3;customer_no3;3
    invoice_no4;customer_no4;4
    invoice_no5;customer_no5;5
    invoice_no6;customer_no6;6
    invoice_no7;customer_no7;7
    invoice_no8;customer_no8;8
    invoice_no9;customer_no9;9
    ';
BEGIN
   null;
   --...
END;

将数据从temp_变量输入到rec_的最佳方法是什么。我知道我可以编写循环并使用substr / instr函数,但也许有更好的方法?

1 个答案:

答案 0 :(得分:0)

我没有足够的声誉来评论,所以我在这里发布链接。它讨论了能够将字符串拆分为数组的顶点实用程序功能。

https://stackoverflow.com/a/381380/5988038