首页  ·  知识 ·  数据库
oracleEBS序列号条码的批量导入
网友      编辑:德仔   图片来源:网络
FORM二次开发: 1、INPUTTEXT多行文本框(INPUTTEXT)、Button(INPUTBUTTON)、绑定数据库MTL_SERIAL_NUMBERS的文本项(SERIAL_NUMBER). <
FORM二次开发:
1、INPUTTEXT多行文本框(INPUTTEXT)、Button(INPUTBUTTON)、绑定数据库MTL_SERIAL_NUMBERS的文本项(SERIAL_NUMBER).
2、在inputbutton的when-button-pressed上加上这些代码:
DECLARE
i number;
j number;
j_old number;
srie_str varchar2(2000);
begin
GO_BLOCK('MTL_SERIAL_NUMBERS');
clear_block;--清空
srie_str:=:INPUTTEXT.INPUTTEXT;
------------------------------------------
i := 0;---计数器,出现的次数
j := 1;
j_old := j;
j:=instr(srie_str, chr(10));------chr(10)换行符号
--fnd_message.debug(srie_str);--------调试用的
-----循环写入
loop
    exit when j=0;
    i := i+1;
       -------赋值-------
    :MTL_SERIAL_NUMBERS.SERIAL_NUMBER := substr(srie_str, j_old, j-j_old);
    j_old := j+1;
    j := instr(srie_str, chr(10), j+1 );
    --------转入下一条--------
    next_record;
end loop;
-----------特殊处理--------------
next_record;
:MTL_SERIAL_NUMBERS.SERIAL_NUMBER :=substr(srie_str, j_old);---输出最后一行
------------------------------------------
GO_BLOCK('MTL_SERIAL_NUMBERS');
FIRST_RECORD;
end;
/*下面是PLSQL模型*/
declare
i number;
j number;
j_old number;
srie_str varchar2(100);
begin
--str := 'aa,bb,dfdfcc,ddfdfddd,eaae';-----多行文本中的字符串
srie_str := 'aa
          bb
          dfdfcc
          ddfdfddd
          eaae';
i := 0;---计数器,出现的次数
j := 1;---位置
j_old := j;
j:=instr(srie_str, 'chr(13)');------目标出现的位置
-----------FORMS里,chr(10)才是换行管用---------------------
--------------------循环取值-------------------------------
loop
    exit when j=0;
    i := i+1;
    --dbms_output.put_line(to_char(j));
    dbms_output.put_line(substr(srie_str, j_old, j-j_old));--输出倒数前的行
    --dbms_output.put_line(to_char(i));
    --dbms_output.put_line(' ');
    j_old := j+1;
    j := instr(srie_str, 'chr(13)', j+1 );
end loop;
dbms_output.put_line(substr(srie_str, j_old));---输出最后一行
end;
本文作者:网友 来源:网络
CIO之家 www.ciozj.com 微信公众号:imciow
    >>频道首页  >>网站首页   纠错  >>投诉
版权声明:CIO之家尊重行业规范,每篇文章都注明有明确的作者和来源;CIO之家的原创文章,请转载时务必注明文章作者和来源;
延伸阅读
也许感兴趣的
我们推荐的
主题最新
看看其它的