失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > oracle 500错误 oracle - FRM-50016法律字符是0-9 - + E错误Oracle表单 - 堆栈内存溢出

oracle 500错误 oracle - FRM-50016法律字符是0-9 - + E错误Oracle表单 - 堆栈内存溢出

时间:2022-06-17 17:55:08

相关推荐

oracle 500错误 oracle - FRM-50016法律字符是0-9  -  + E错误Oracle表单 - 堆栈内存溢出

我创建了Oracle Form,其中用户从目标“目标”链接“浏览”“CSV”文件,我们将在文本字段项中显示。 用户按下保存按钮后,列值将从“CSV”文件和显示列值读入数据块。 为此,我使用了Client_OLE2.create_obj('EXCEL.Application')过程。

在“CSV”文件中有些列像这样在调整宽度之前:

第四栏“6E + 09”

调整宽度之后像这样:

现在第4列值“6000000116”

调整列宽后,调整宽度后没有保存文件。

我的代码:

DECLARE

application Client_OLE2.Obj_Type;

workbooks Client_OLE2.Obj_Type;

workbook Client_OLE2.Obj_Type;

worksheets Client_OLE2.Obj_Type;

worksheet Client_OLE2.Obj_Type;

worksheet2 Client_OLE2.Obj_Type;

cell Client_OLE2.OBJ_TYPE;

args Client_OLE2.OBJ_TYPE;

cell_value varchar2(100);

num_wrkshts NUMBER;

wksht_name VARCHAR2(250);

eod boolean:=false;

j integer:=1;

BEGIN

IF ( :WE_GROUP.FILE IS NOT NULL ) THEN

-- The following sets up communication with the excel spreadsheet

-- --------------------------------------------------------------

-- Open the OLE application

application := Client_OLE2.create_obj('EXCEL.Application');

-- Keep the application hidden

Client_OLE2.set_property(application,'Visible','false');

workbooks := Client_OLE2.Get_Obj_Property(application, 'Workbooks');

args := Client_OLE2.CREATE_ARGLIST;

-- Open the selected File

-- ----------------------

Client_OLE2.add_arg(args,:WE_GROUP.FILE);

workbook := Client_OLE2.GET_OBJ_PROPERTY(workbooks,'Open',args);

Client_OLE2.destroy_arglist(args);

worksheets := Client_OLE2.GET_OBJ_PROPERTY(workbook, 'Worksheets');

-- Get number of worksheets

-- ------------------------

num_wrkshts := Client_OLE2.GET_NUM_PROPERTY(worksheets, 'Count');

worksheet := Client_OLE2.GET_OBJ_PROPERTY(application,'activesheet');

--Go to the first record

go_block('WE_GROUP_HOF_K');

first_record;

loop

If :system.record_status <> 'NEW' then

create_record;

end if;

exit when eod;

for k in 1..29 loop --3 fields per record

args:= Client_OLE2.create_arglist;

Client_OLE2.add_arg(args, j);

Client_OLE2.add_arg(args, k);

cell:= Client_OLE2.get_obj_property(worksheet, 'Cells', args);

Client_OLE2.destroy_arglist(args);

cell_value :=Client_OLE2.get_char_property(cell, 'Value');

--Could be done this way also ->

/*if k =1 then

:dept.deptno:=cell_value;

end if;

if k =2 then

:dept.dname:=cell_value;

end if;

if k =3 then

:dept.loc:=cell_value;

end if;

*/

--Less code this way ->

copy(cell_value,name_in('system.cursor_item'));

next_item;

end loop; --for

j:=j+1;

end loop;--main loop

-- Release the Client_OLE2 object handles

IF (cell IS NOT NULL) THEN

Client_OLE2.release_obj(cell);

END IF;

IF (worksheet IS NOT NULL) THEN

Client_OLE2.release_obj(worksheet);

END IF;

IF (worksheets IS NOT NULL) THEN

Client_OLE2.release_obj(worksheets);

END IF;

IF (worksheet2 IS NOT NULL) THEN

Client_OLE2.release_obj(worksheet2);

END IF;

IF (workbook IS NOT NULL) THEN

Client_OLE2.release_obj(workbook);

END IF;

IF (workbooks IS NOT NULL) THEN

Client_OLE2.release_obj(workbooks);

END IF;

Client_OLE2.invoke(application,'Quit');

Client_OLE2.release_obj(application);

ELSE

Message('No File selected.');

message(' ');

RAISE Form_Trigger_Failure;

END IF;

END;

现在,当我按下保存按钮时,我收到以下错误:

FRM-50016法律字符为0-9 - + E.

如何解决这个问题呢? Oracle Forms 11gR2

如果觉得《oracle 500错误 oracle - FRM-50016法律字符是0-9 - + E错误Oracle表单 - 堆栈内存溢出》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。