请问PL / SQL具有同等的StringTokenizer Java的?(Does PL/SQL

2019-07-20 23:42发布

我用java.util.StringTokenizer的在Java分隔字符串的简单分析。 我有一个需要同样类型的PL / SQL机制。 我可以写,但如果它已经存在,我宁愿使用。 任何人都知道一个PL / SQL执行? 一些有用的方法吗?

Answer 1:

PL / SQL不包括逗号分隔的列表(一个基本的DBMS_UTILITY.COMMA_TO_TABLE )。

例:

DECLARE
   lv_tab_length   BINARY_INTEGER;
   lt_array   DBMS_UTILITY.lname_array;
BEGIN
   DBMS_UTILITY.COMMA_TO_TABLE( list => 'one,two,three,four'
                              , tablen => lv_tab_length
                              , tab => lt_array
                              );

   DBMS_OUTPUT.PUT_LINE( 'lv_tab_length = ['||lv_tab_length||']' );

   FOR i IN 1..lv_tab_length
   LOOP
      DBMS_OUTPUT.PUT_LINE( '['||lt_array( i )||']' );
   END LOOP;

END;
/

还是看this向汤姆链接其他的想法?

阿克汤姆- “变化中的IN列表中的元素”



Answer 2:

如果你已经安装了APEX,功能APEX_UTIL.string_to_table做到了这一点。



Answer 3:

PL / SQL没有附带内置的分词器。 然而,它是相对简单的打造出来的SQL或PL / SQL的。 阿德里安·比林顿的网站有几个解决方案 。 此外,如果您是在10g中,你可以使用从Tanel PODER这个代码 ,使用正则表达式这确实是在SQL。

诚然,如果甲骨文只是包括宕设施作为其内置插件之一,它会更容易些。



Answer 4:

另一种方法是编写一个Java存储过程(有数据库内的JVM),这意味着你可以使用java.util.StringTokenizer中。 你必须换一个PL / SQL过程/函数内部的Java存储过程。

硒这里的一个例子: http://forums.oracle.com/forums/thread.jspa?messageID=2575374&#2575374

可悲的是我doný这样理解的异常处理是不是真的很大(我不是一个Java开发)Java的检查的异常。



文章来源: Does PL/SQL have an equivalent StringTokenizer to Java's?