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出错时,我想在捕获异常后继续游标,怎么解决上面的问题
解决方案 »
- 如何给有外键的表一次性插入多条数据
- 如何用sql删除某字段含有'/0/1'这样的记录?
- oracle 导出导入问题??
- SQLSERVER2000数据库迁移到oracle10G,要注意些啥吗?
- 一个SQL语句优化,急!!!
- 在Oracle 存储过程中,游标打开后,怎么得到记录数?
- 事务级临时表数据被清空的问题
- 只有一个MYDBDATA.ORA表空间文件,如何在重新装的oracle上恢复此表空间?
- 还是昨天的问题,ora-01041,好象与oracle8i Enterprise Manager的安装有关??
- ora-00936:缺失表达式
- 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;