解决方案 »
- 如何自动修改tnsname.ora文件中的HOST值
- 请问如何由日期格式解析出具体的时间字符串???
- 一个客户全表,一个有效客户表,不用not in,因为not in速度慢,关键字khh
- oracle查询表时,ora-04044:此处不允许过程,函数,程序包或类型提示?
- Oracle数据库中利用CachedRowSetImpl.populate(resultset)抛出错误!
- oracle字符串函数问题
- win2000下装的oracle9i,创建了两个数据库,那么这两个数据库能否同时启动?
- 在oracle中,可以用SQL语句来定义键吗?怎样定义?
- 一个小问题,我就是不明白? 在线等
- 请问:如何定义一个事务级或会话级临时表,是在函数及存储过程中生成及使用的,谢谢!
- oracle 创建临时表 出现符号 CREATE 在需要下列 begin function package
- 关于connect by查询语句中查询部分的累计问题
2. OPEN audit_cursor ;
loop
fetch audit_cursor into ......
......
end loop;
constant exception
<an identifier> <a double-quoted delimited-identifier> table
LONG_ double ref char time timestamp interval date binary
national character nchar
Line: 53
Text: FETCH audit_cursor INTO MRID1,iccardno,dia_date,admiss_times,MDESCRIPT1,MHISDESCRIPT1,CHECKUP1,CHECKASS1,COURSEREC1,DIAGNOSECONTENT,DIAGNOSERANGEError: PLS-00103: 出现符号 "IF"在需要下列之一时:
. ( , % ; limit
Line: 55
Text: IF @@fetch_status <> 0 break
open audit_cursor;
loop
FETCH audit_cursor INTO .... ;--分号结尾
EXIT WHEN audit_cursor%notfound; --判断取完则退出
--其它处理语句
end loop;
--关闭游标
close audit_cursor;建议先看看PL/SQL基础的书。
MRID in varchar
)
IS MRID1 varchar(20);
MRID2 varchar(20);
dia_date varchar(30);
iccardno varchar(20);
MDESCRIPT varchar(8000);
MHISDESCRIPT varchar(8000);
CHECKUP varchar(8000);
CHECKASS varchar(8000);
COURSEREC varchar(8000);
MDESCRIPT1 varchar(8000);
MHISDESCRIPT1 varchar(8000);
CHECKUP1 varchar(8000);
CHECKASS1 varchar(8000);
COURSEREC1 varchar(8000);
admiss_times int ;
DIAGNOSECONTENT varchar(60);
DIAGNOSERANGE nchar(1);begin
execute immediate 'CREATE GLOBAL TEMPORARY TABLE ca_emr(
MRID varchar(20),
dia_date varchar(30),
flag varchar(1) ,
doctor varchar(5),
iccardno varchar(20),
MDESCRIPT long,
MHISDESCRIPT long ,
CHECKUP long ,
CHECKASS long ,
COURSEREC long,
admiss_times smallint ,
DIAGNOSECONTENT varchar(60),
DIAGNOSERANGE nchar(1)
)
on commit PRESERVE rows';
DECLARE
CURSOR audit_cursor is select mainmr.MRID, mainmr.papernum,inpatient.outdate, inpatient.admiss_times,inpatient.MDESCRIPT,
inpatient.MHISDESCRIPT,inpatient.CHECKUP,inpatient.CHECKASS,inpatient.COURSEREC,alldiagnoserecord.DIAGNOSECONTENT,
alldiagnoserecord.DIAGNOSERANGE from mainmr,inpatient,alldiagnoserecord where mainmr.MRID=inpatient.MRID and
inpatient.MRID=alldiagnoserecord.sickid and mainmr.MRID=MRID and (diagnosecontent = '妊娠糖尿病' or
diagnosecontent = '2型糖尿病' or diagnosecontent = '1型糖尿病' or diagnosecontent = '特殊类型糖尿病' or diagnosecontent= '糖尿病') ;
OPEN audit_cursor;
loop
FETCH audit_cursor INTO MRID1,iccardno,dia_date,admiss_times,MDESCRIPT1,MHISDESCRIPT1 ,CHECKUP1,CHECKASS1,COURSEREC1,DIAGNOSECONTENT,DIAGNOSERANGE
EXIT WHEN audit_cursor%NOTFOUND or audit_cursor%NOTFOUND is null;
select MDESCRIPT=convert(varchar(8000),xmlcontent) from xmlfilerecord where xmlcontentid=MDESCRIPT1
select CHECKUP=convert(varchar(8000),xmlcontent) from xmlfilerecord where xmlcontentid=CHECKUP1
select CHECKASS=convert(varchar(8000),xmlcontent) from xmlfilerecord where xmlcontentid=CHECKASS1
select COURSEREC=convert(varchar(8000),xmlcontent) from xmlfilerecord where xmlcontentid=COURSEREC1
select MHISDESCRIPT=convert(varchar(8000),xmlcontent) from xmlfilerecord where xmlcontentid=MHISDESCRIPT1
insert into #ca_emr(MRID,flag,iccardno,dia_date,admiss_times,MDESCRIPT,MHISDESCRIPT,CHECKUP,CHECKASS,COURSEREC,
DIAGNOSECONTENT,DIAGNOSERANGE) values(MRID1,'z',iccardno,dia_date,admiss_times,MDESCRIPT,
MHISDESCRIPT,CHECKUP,CHECKASS,COURSEREC,DIAGNOSECONTENT,DIAGNOSERANGE)
end loop;
CLOSE audit_cursor
DEALLOCATE audit_cursor
end out_emr;
Error: PLS-00103: 出现符号 "FETCH"在需要下列之一时:
constant exception
<an identifier> <a double-quoted delimited-identifier> table
LONG_ double ref char time timestamp interval date binary
national character nchar
Line: 53
Text: FETCH audit_cursor INTO MRID1,iccardno,dia_date,admiss_times,MDESCRIPT1,MHISDESCRIPT1Error: PLS-00103: 出现符号 "EXIT"在需要下列之一时:
. ( , % ; limit
Line: 56
Text: EXIT WHEN audit_cursor%NOTFOUND or audit_cursor%NOTFOUND is null;还是不行,希望那个大哥帮我看看
MHISDESCRIPT1 varchar(8000)
--varcahr2(4000)这是最大值,所有的字符型,最好使用varchar2替代EXIT WHEN audit_cursor%NOTFOUND--or audit_cursor%NOTFOUND is null;画蛇添足create table #t as select * from dept where 1=0--表的名称一字母开头
ORA-00911: invalid character
constant exception
<an identifier> <a double-quoted delimited-identifier> table
LONG_ double ref char time timestamp interval date binary
national character nchar
Line: 53
Text: FETCH audit_cursor INTO MRID1,iccardno,dia_date,admiss_times,MDESCRIPT1,MHISDESCRIPT1Error: PLS-00103: 出现符号 "EXIT"在需要下列之一时:
. ( , % ; limit
Line: 56
Text: EXIT WHEN audit_cursor%NOTFOUND
该了还是报错啊,急死了
loop
FETCH audit_cursor INTO MRID1,iccardno,dia_date,admiss_times,MDESCRIPT1,MHISDESCRIPT1,CHECKUP1,CHECKASS1,COURSEREC1,DIAGNOSECONTENT,DIAGNOSERANGE;
EXIT WHEN audit_cursor%NOTFOUND;
select MDESCRIPT =convert(varchar(8000),xmlcontent) from xmlfilerecord where xmlcontentid=MDESCRIPT1
select CHECKUP=convert(varchar(8000),xmlcontent) from xmlfilerecord where xmlcontentid=CHECKUP1
select CHECKASS=convert(varchar(8000),xmlcontent) from xmlfilerecord where xmlcontentid=CHECKASS1
select COURSEREC=convert(varchar(8000),xmlcontent) from xmlfilerecord where xmlcontentid=COURSEREC1
select MHISDESCRIPT=convert(varchar(8000),xmlcontent) from xmlfilerecord where xmlcontentid=MHISDESCRIPT1
insert into #ca_emr(MRID,flag,iccardno,dia_date,admiss_times,MDESCRIPT,MHISDESCRIPT,CHECKUP,CHECKASS,COURSEREC,
DIAGNOSECONTENT,DIAGNOSERANGE) values(MRID1,'z',iccardno,dia_date,admiss_times,MDESCRIPT,
MHISDESCRIPT,CHECKUP,CHECKASS,COURSEREC,DIAGNOSECONTENT,DIAGNOSERANGE)
end loop;
CLOSE audit_cursor
DEALLOCATE audit_cursor
end out_emr;
Error: PLS-00103: 出现符号 "FETCH"在需要下列之一时:
constant exception
<an identifier> <a double-quoted delimited-identifier> table
LONG_ double ref char time timestamp interval date binary
national character nchar
Line: 53
Text: FETCH audit_cursor INTO MRID1,iccardno,dia_date,admiss_times,MDESCRIPT1,MHISDESCRIPT1,CHECKUP1,CHECKASS1,COURSEREC1,DIAGNOSECONTENT,DIAGNOSERANGE;Error: PLS-00103: 出现符号 "="在需要下列之一时:
. ( , * @ % & - + / at mod
rem <an identifier> <a double-quoted delimited-identifier>
<an exponent (**)> as from into || bulk
Line: 56
Text: select MDESCRIPT =convert(varchar(8000),xmlcontent) from xmlfilerecord where xmlcontentid=MDESCRIPT1加了分号还是报错
OPEN audit_cursor;
loop
FETCH audit_cursor INTO
MRID1,iccardno,dia_date,admiss_times,MDESCRIPT1,MHISDESCRIPT1,
CHECKUP1,CHECKASS1,COURSEREC1,DIAGNOSECONTENT,DIAGNOSERANGE
EXIT WHEN audit_cursor%NOTFOUND;
select convert(varchar(8000),xmlcontent) into MDESCRIPT from xmlfilerecord where xmlcontentid=MDESCRIPT1
select convert(varchar(8000),xmlcontent) into CHECKUP from xmlfilerecord where xmlcontentid=CHECKUP1
select convert(varchar(8000),xmlcontent) into CHECKASS from xmlfilerecord where xmlcontentid=CHECKASS1
select convert(varchar(8000),xmlcontent) into COURSEREC from xmlfilerecord where xmlcontentid=COURSEREC1
select convert(varchar(8000),xmlcontent) into MHISDESCRIPT from xmlfilerecord where xmlcontentid=MHISDESCRIPT1
--添加数据时记得数据类型和个数要与表中的字段对齐
--表的命名不要以 # 开始,将你的表改过,或者重建,前提是不损害你的数据
insert into #ca_emr(MRID,flag,iccardno,dia_date,admiss_times,MDESCRIPT,MHISDESCRIPT,CHECKUP,CHECKASS,COURSEREC,
DIAGNOSECONTENT,DIAGNOSERANGE)
values(MRID1,'z',iccardno,dia_date,admiss_times,MDESCRIPT,
MHISDESCRIPT,CHECKUP,CHECKASS,COURSEREC,DIAGNOSECONTENT,DIAGNOSERANGE);
end loop;
CLOSE audit_cursor;--每个语句结束记得加";"号
/*
你这个语句写得真的是漏洞百出了啊
oracle也有convert函数,但是不是这么用的,如果你想将非字符型数据转换为字符型数据
那么使用to_char函数就可以了;
使用select语句给变量赋值:
select col_name into v_var
from table_name
where condition;*/
Error: PLS-00103: 出现符号 "FETCH"在需要下列之一时:
constant exception
<an identifier> <a double-quoted delimited-identifier> table
LONG_ double ref char time timestamp interval date binary
national character nchar2, EXIT WHEN audit_cursor%NOTFOUND;
Line: 53
Text: FETCH audit_cursor INTO Error: PLS-00103: 出现符号 "EXIT"在需要下列之一时:
. ( , % ; limit
Line: 57
Text: EXIT WHEN audit_cursor%NOTFOUND;
open audit_cursor;
loop
FETCH audit_cursor INTO .... ;--分号结尾
EXIT WHEN audit_cursor%notfound; --判断取完则退出
--其它处理语句
end loop;
--关闭游标
close audit_cursor;
loop
FETCH audit_cursor INTO
MRID1,iccardno,dia_date,admiss_times,MDESCRIPT1,MHISDESCRIPT1,
CHECKUP1,CHECKASS1,COURSEREC1,DIAGNOSECONTENT,DIAGNOSERANGE
EXIT WHEN audit_cursor%NOTFOUND;
select convert(varchar(8000),xmlcontent) into MDESCRIPT from xmlfilerecord where xmlcontentid=MDESCRIPT1
select convert(varchar(8000),xmlcontent) into CHECKUP from xmlfilerecord where xmlcontentid=CHECKUP1
select convert(varchar(8000),xmlcontent) into CHECKASS from xmlfilerecord where xmlcontentid=CHECKASS1
select convert(varchar(8000),xmlcontent) into COURSEREC from xmlfilerecord where xmlcontentid=COURSEREC1
select convert(varchar(8000),xmlcontent) into MHISDESCRIPT from xmlfilerecord where xmlcontentid=MHISDESCRIPT1
--添加数据时记得数据类型和个数要与表中的字段对齐
--表的命名不要以 # 开始,将你的表改过,或者重建,前提是不损害你的数据
insert into #ca_emr(MRID,flag,iccardno,dia_date,admiss_times,MDESCRIPT,MHISDESCRIPT,CHECKUP,CHECKASS,COURSEREC,
DIAGNOSECONTENT,DIAGNOSERANGE)
values(MRID1,'z',iccardno,dia_date,admiss_times,MDESCRIPT,
MHISDESCRIPT,CHECKUP,CHECKASS,COURSEREC,DIAGNOSECONTENT,DIAGNOSERANGE);
end loop; CLOSE audit_cursor
DEALLOCATE audit_cursor
Compilation errors for PROCEDURE SZEMR.OUT_EMRError: PLS-00103: 出现符号 "FETCH"在需要下列之一时:
constant exception
<an identifier> <a double-quoted delimited-identifier> table
LONG_ double ref char time timestamp interval date binary
national character nchar
Line: 53
Text: FETCH audit_cursor INTOError: PLS-00103: 出现符号 "EXIT"在需要下列之一时:
. ( , % ; limit
Line: 57
Text: EXIT WHEN audit_cursor%NOTFOUND;
loop
FETCH audit_cursor INTO
MRID1,iccardno,dia_date,admiss_times,MDESCRIPT1,MHISDESCRIPT1,
CHECKUP1,CHECKASS1,COURSEREC1,DIAGNOSECONTENT,DIAGNOSERANGE;
EXIT WHEN audit_cursor%NOTFOUND;
select convert(varchar(8000),xmlcontent) into MDESCRIPT from xmlfilerecord where xmlcontentid=MDESCRIPT1
select convert(varchar(8000),xmlcontent) into CHECKUP from xmlfilerecord where xmlcontentid=CHECKUP1 select convert(varchar(8000),xmlcontent) into CHECKASS from xmlfilerecord where xmlcontentid=CHECKASS1
select convert(varchar(8000),xmlcontent) into COURSEREC from xmlfilerecord where xmlcontentid=COURSEREC1
select convert(varchar(8000),xmlcontent) into MHISDESCRIPT from xmlfilerecord where xmlcontentid=MHISDESCRIPT1
--添加数据时记得数据类型和个数要与表中的字段对齐
--表的命名不要以 # 开始,将你的表改过,或者重建,前提是不损害你的数据
insert into #ca_emr(MRID,flag,iccardno,dia_date,admiss_times,MDESCRIPT,MHISDESCRIPT,CHECKUP,CHECKASS,COURSEREC,
DIAGNOSECONTENT,DIAGNOSERANGE)
values(MRID1,'z',iccardno,dia_date,admiss_times,MDESCRIPT,
MHISDESCRIPT,CHECKUP,CHECKASS,COURSEREC,DIAGNOSECONTENT,DIAGNOSERANGE);
end loop; CLOSE audit_cursor
DEALLOCATE audit_cursor
Compilation errors for PROCEDURE SZEMR.OUT_EMRError: PLS-00103: 出现符号 "FETCH"在需要下列之一时:
constant exception
<an identifier> <a double-quoted delimited-identifier> table
LONG_ double ref char time timestamp interval date binary
national character nchar
Line: 53
Text: FETCH audit_cursor INTOError: PLS-00103: 出现符号 "SELECT"在需要下列之一时:
. ( * @ % & - + ; / at
for mod rem <an exponent (**)> and or group having intersect
minus order start union where connect ||
Line: 60
Text: select convert(varchar(8000),xmlcontent) into CHECKUP from xmlfilerecord where xmlcontentid=CHECKUP1