多谢大家!慧眼如炬!============== 表 ===============
create table A(
downloadID number(4) not null,
fileTitle varchar2(160),
ShareStatuts CHAR(1),
constraint pk_tb_download primary key (downloadID),
);create table B(
FILEID char(36) NOT NULL,
FILENAME VARCHAR(200) NOT NULL,
constraint pk_B primary key(FILEID)
);================存储过程==============
CREATE OR REPLACE PROCEDURE SetShareStatuts
IS
BEGIN
FOR rec_A IN (SELECT downloadID, fileTitle FROM A) LOOP
FOR rec_B in (SELECT filename FROM B) LOOP
IF rec_B.filename = rec_A.fileTitle THEN
UPDATE A SET ShareStatuts = 'Y' WHERE downloadID = rec_A.downloadID;
EXIT;
END IF;
END LOOP;
UPDATE A SET ShareStatuts = 'N' WHERE downloadid = rec_A.downloadid;
END LOOP;
COMMIT;
END;
/====================报错===========================
BEGIN SetShareStatuts.sql; END; *
第 1 行出现错误:
ORA-06550: 第 1 行, 第 23 列:
PLS-00103: 出现符号 "SQL"在需要下列之一时:
<an identifier>
<a double-quoted delimited-identifier> delete exists prior
符号 "<an identifier>在 "SQL" 继续之前已插入。
create table A(
downloadID number(4) not null,
fileTitle varchar2(160),
ShareStatuts CHAR(1),
constraint pk_tb_download primary key (downloadID),
);create table B(
FILEID char(36) NOT NULL,
FILENAME VARCHAR(200) NOT NULL,
constraint pk_B primary key(FILEID)
);================存储过程==============
CREATE OR REPLACE PROCEDURE SetShareStatuts
IS
BEGIN
FOR rec_A IN (SELECT downloadID, fileTitle FROM A) LOOP
FOR rec_B in (SELECT filename FROM B) LOOP
IF rec_B.filename = rec_A.fileTitle THEN
UPDATE A SET ShareStatuts = 'Y' WHERE downloadID = rec_A.downloadID;
EXIT;
END IF;
END LOOP;
UPDATE A SET ShareStatuts = 'N' WHERE downloadid = rec_A.downloadid;
END LOOP;
COMMIT;
END;
/====================报错===========================
BEGIN SetShareStatuts.sql; END; *
第 1 行出现错误:
ORA-06550: 第 1 行, 第 23 列:
PLS-00103: 出现符号 "SQL"在需要下列之一时:
<an identifier>
<a double-quoted delimited-identifier> delete exists prior
符号 "<an identifier>在 "SQL" 继续之前已插入。
解决方案 »
- linux安装oracle10G的问题帮忙啊急
- ORA-00604: 递归 SQL 层 1 出现错误,ORA-06553:PLS-213: standard包打不开
- Oracle 独立Ado驱动发布的问题
- ORA-12547:TNS:lost contact
- 奇怪的问题.不知道有没有人能解决或说出原因!关于数据库备份
- 请教,C#开发的程序经常报“ora-12542,TNS地址已被占用”,但过一会儿又自动变好了
- 对同一表执行同样的insert操作为何时快时慢?
- 如何知道所安装的实例是采用“专用服务器”,还是“共享服务器”??
- oracle有数组变量,并且数组变量可以作为表的字段存在。请问如果一个字段是数组的话,在前端中应该如何处理呢
- [求助]orcale创建触发器插入数据时进行判断修改后再插入的写法
- oracle10g最大可用内存是多少?
- 关于sqlplus 控制两个查询结果不换行输出的问题
create table A(
downloadID number(4) not null,
fileTitle varchar2(160),
ShareStatuts CHAR(1),
constraint pk_tb_download primary key (downloadID)
);
update a set a.ShareStatuts = 'N' where exists
(select * from b
where a.fileTitle = b.filename)
update a set a.ShareStatuts = 'Y' where not exists
(select * from b
where a.fileTitle = b.filename)
就够老