create or replace procedure pro_DataCopyAndCheck is
ls_COD varchar2(50);
ls_STA VARCHAR2(1);
ls_LNG VARCHAR2(3);
ld_EMS DATE;
ls_OPR_EMS VARCHAR2(20);
ls_REV VARCHAR2(3);
ld_REV DATE;
ls_OPR_REV VARCHAR2(20);
ls_SIG_PRD VARCHAR2(1);
ls_FIL_LAME VARCHAR2(1);
ls_COD_LAME VARCHAR2(5);
cursor get70TableData is
select I94_COD_QCP,I94_STA_QCP,I94_LNG_QCP,D94_EMS_QCP,T94_OPR_EMS_QCP,
I94_REV_QCP,D94_REV_QCP,T94_OPR_REV_QCP,I27_SIG_PRD,
F94_FIL_LAME,I94_COD_LAME from TGED070_QCP_STANGING;
begin
open get70TableData;
fetch get70TableData into
ls_COD,ls_STA,ls_LNG,ld_EMS,ls_OPR_EMS,ls_REV,ld_REV,
ls_OPR_REV,ls_SIG_PRD,ls_FIL_LAME,ls_COD_LAME;
while get70TableData%found loop
insert into TGED070_QCP values
(ls_COD,ls_STA,ls_LNG,ld_EMS,ls_OPR_EMS,ls_REV,ld_REV,
ls_OPR_REV,ls_SIG_PRD,ls_FIL_LAME,ls_COD_LAME);
EXCEPTION
when others then
ls_COD := "";
fetch get70TableData into
ls_COD,ls_STA,ls_LNG,ld_EMS,ls_OPR_EMS,ls_REV,ld_REV,
ls_OPR_REV,ls_SIG_PRD,ls_FIL_LAME,ls_COD_LAME;
end loop;
Close get70TableData;
end pro_DataCopyAndCheck;
PL/SQL中的错误信息:
PROCEDURE SYSTEM.PRO_DATACOPYANDCHECK 编译错误错误: PLS-00103: 出现符号 "EXCEPTION"在需要下列之一时:
begincasedeclareend
exitforgotoifloopmodnullpragmaraisereturnselectupdatewhile
with<an identifier><a double-quoted delimited-identifier>
<a bind variable><<closecurrentdeletefetchlockinsertopen
rollbacksavepointsetsqlexecutecommitforallmerge
<a single-quoted SQL string>pipe
行: 29
文本: EXCEPTION错误: PLS-00103: 出现符号 "CLOSE"在需要下列之一时:
beginfunctionpackage
pragmaprocedureform
行: 46
文本: Close get70TableData;错误: PLS-00103: 出现符号 "end-of-file"在需要下列之一时:
beginfunction
packagepragmaproceduresubtypetypeuse<an identifier>
<a double-quoted delimited-identifier>formcurrentcursor
行: 48
insert出错时,我想在捕获异常后继续游标,怎么解决上面的问题
ls_COD varchar2(50);
ls_STA VARCHAR2(1);
ls_LNG VARCHAR2(3);
ld_EMS DATE;
ls_OPR_EMS VARCHAR2(20);
ls_REV VARCHAR2(3);
ld_REV DATE;
ls_OPR_REV VARCHAR2(20);
ls_SIG_PRD VARCHAR2(1);
ls_FIL_LAME VARCHAR2(1);
ls_COD_LAME VARCHAR2(5);
cursor get70TableData is
select I94_COD_QCP,I94_STA_QCP,I94_LNG_QCP,D94_EMS_QCP,T94_OPR_EMS_QCP,
I94_REV_QCP,D94_REV_QCP,T94_OPR_REV_QCP,I27_SIG_PRD,
F94_FIL_LAME,I94_COD_LAME from TGED070_QCP_STANGING;
begin
open get70TableData;
fetch get70TableData into
ls_COD,ls_STA,ls_LNG,ld_EMS,ls_OPR_EMS,ls_REV,ld_REV,
ls_OPR_REV,ls_SIG_PRD,ls_FIL_LAME,ls_COD_LAME;
while get70TableData%found loop
insert into TGED070_QCP values
(ls_COD,ls_STA,ls_LNG,ld_EMS,ls_OPR_EMS,ls_REV,ld_REV,
ls_OPR_REV,ls_SIG_PRD,ls_FIL_LAME,ls_COD_LAME);
EXCEPTION
when others then
ls_COD := "";
fetch get70TableData into
ls_COD,ls_STA,ls_LNG,ld_EMS,ls_OPR_EMS,ls_REV,ld_REV,
ls_OPR_REV,ls_SIG_PRD,ls_FIL_LAME,ls_COD_LAME;
end loop;
Close get70TableData;
end pro_DataCopyAndCheck;
PL/SQL中的错误信息:
PROCEDURE SYSTEM.PRO_DATACOPYANDCHECK 编译错误错误: PLS-00103: 出现符号 "EXCEPTION"在需要下列之一时:
begincasedeclareend
exitforgotoifloopmodnullpragmaraisereturnselectupdatewhile
with<an identifier><a double-quoted delimited-identifier>
<a bind variable><<closecurrentdeletefetchlockinsertopen
rollbacksavepointsetsqlexecutecommitforallmerge
<a single-quoted SQL string>pipe
行: 29
文本: EXCEPTION错误: PLS-00103: 出现符号 "CLOSE"在需要下列之一时:
beginfunctionpackage
pragmaprocedureform
行: 46
文本: Close get70TableData;错误: PLS-00103: 出现符号 "end-of-file"在需要下列之一时:
beginfunction
packagepragmaproceduresubtypetypeuse<an identifier>
<a double-quoted delimited-identifier>formcurrentcursor
行: 48
insert出错时,我想在捕获异常后继续游标,怎么解决上面的问题
解决方案 »
- oracle速度变慢,急!!
- oracle中有表变量吗?
- 求一个特别的oracle查询语句
- 关于游标的一个问题
- 菜鸟问题
- Oracle 815TNSListener 无法自动启动
- 利用oracle自带的database config assiant新建数据库很大,有900M,我想建立一个空的数据库如何处理阿
- 如何在的EXP/IMP时候,把表Storage中Initial的值设为Default
- SQL*LOADER的简单问题,在线等(立刻给分)
- 在Windows下使用nodejs安装oracledb
- Oracle9i中导入数据表时发生错误ORA-01658
- ORACLE rownum改成SQL SERVER问题
WHEN OTHERS
THEN
ls_COD := "";
---
ls_COD := '';oracle中字符串用''
ls_COD := '';这时ls_COD为null
oracle中空字符串相当于null
begin ----------------------------
insert into TGED070_QCP values
(ls_COD,ls_STA,ls_LNG,ld_EMS,ls_OPR_EMS,ls_REV,ld_REV,
ls_OPR_REV,ls_SIG_PRD,ls_FIL_LAME,ls_COD_LAME);
EXCEPTION
when others then
ls_COD := "";
fetch get70TableData into
ls_COD,ls_STA,ls_LNG,ld_EMS,ls_OPR_EMS,ls_REV,ld_REV,
ls_OPR_REV,ls_SIG_PRD,ls_FIL_LAME,ls_COD_LAME;
end;--- ----------------------------
end loop;