【问题标题】:Error ORA-06502 WHEN-BUTTON-PRESSED oracle forms错误 ORA-06502 WHEN-BUTTON-PRESSED oracle 表单
【发布时间】:2019-10-01 02:12:06
【问题描述】:

我正在尝试将“CSV”文件中的数据显示到 Oracle 表单。我正在使用 Client_Text_IO 程序从“CSV”文件中读取数据,逗号分隔到数据块中。

我有一列,其中一些数据为空并且有一些数据。如果我在 excel 中打开文件,那么:

没有。 6 列有些行是空的:

第6列部分行有数据:

当我在记事本中打开文件时:

6,6,6000000116,HH00000471,Abdul akbar,,1610223056753

你可以看到“ABDUL AKBAR”后面有2个逗号,因为数据是空的

在记事本中有数据:

6,6,6000000189,HH00000544,Raishma bibi,Gul akbar,1610216789294

当我运行程序时,在第 6 列出现以下错误:

代码:

PROCEDURE p_output_line(p_line varchar2) IS

 vLINE VARCHAR2(4000);
 vVALUE VARCHAR2(1000); 
 vCOMMA_COUNT NUMBER;

BEGIN

 vLINE := p_line;
 vCOMMA_COUNT := LENGTH(vLINE)- LENGTH(REPLACE(vLINE,',',''));

  FOR I IN 1.. vCOMMA_COUNT+1 LOOP  
  vVALUE := SUBSTR(vLINE,1,INSTR(vLINE,',')-1);
IF vVALUE IS NULL THEN
    vVALUE := vLINE;
END IF;    
  vLINE := SUBSTR(vLINE,INSTR(vLINE,',')+1) ; -- CHANGE   123,ABC,9877 TO BE   ABC,9877

  IF I = 1 THEN
:WE_GROUP_HOF_K.CLIENTID := vVALUE; 
 END IF;

 IF I = 2 THEN 
:WE_GROUP_HOF_K.PROJECTID := vVALUE;
 END IF;

 IF I = 3 THEN
:WE_GROUP_HOF_K.GROUP_HOF_ID := vVALUE;
 END IF;

 IF I = 4 THEN
:WE_GROUP_HOF_K.NRSP_HOFID := vVALUE;
 END IF;

 IF I = 5 THEN
:WE_GROUP_HOF_K.HOF_NAME := vVALUE;
 END IF;

 IF I = 6 THEN
    :WE_GROUP_HOF_K.FATHER_NAME := vVALUE;
 END IF;

 END LOOP; 
 EXCEPTION
  WHEN NO_DATA_FOUND THEN
  MESSAGE('Please Check the data type is appropriate on you excel file');
  MESSAGE('Please Check the data type is appropriate on you excel file');
END; 

【问题讨论】:

    标签: oracle oracle11g oracle10g oracleforms oracle-fusion-middleware


    【解决方案1】:

    因为它是空的,所以你的计数不起作用。 使用拆分功能拆分数据。 Split function

    同样在你的 when no_data_found 异常中你应该在你的消息后面加上pause;,那么就没有必要放两次了。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-11
    • 2019-11-13
    • 1970-01-01
    • 2020-03-10
    • 2016-12-18
    • 1970-01-01
    • 2014-12-30
    • 1970-01-01
    相关资源
    最近更新 更多