我用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�
可悲的是我doný这样理解的异常处理是不是真的很大(我不是一个Java开发)Java的检查的异常。
文章来源: Does PL/SQL have an equivalent StringTokenizer to Java's?