麻烦高手们看看这段代码有没有语法错误!
大家看看我的这个存储过程。表HAOBAI是个空表,为什么执行这个存储过程后,表HAOBAI里只插入了一条数据呢?
大家看看语法对不对,有没有死循环或者别的语法错误? CREATE OR REPLACE PROCEDURE STORE_WIKI AS
DECLARE
question varchar(100);
answer varchar(1000);
url varchar(1000);
question_sum number;
cursor cur is SELECT WIKI_EXPLANATION.TITLE,WIKI_EXPLANATION.EXPLANATION,WIKI_EXPLANATION.URL
FROM WIKI_EXPLANATION
WHERE WIKI_EXPLANATION.URL NOT IN (SELECT URL FROM HAOBAI);
begin
open cur;
fetch cur into question,answer,url;
while cur %found loop
select count(*) into question_sum from HAOBAI where HAOBAI.QUESTION = question;
if question_sum = 0
then
INSERT
INTO HAOBAI
VALUES(question,answer,url);
end if;
commit;
fetch cur into question,answer,url;
end loop;
close cur;
end;
下面这句sql语句读出来的数据有很多条,绝对不止一条。
SELECT WIKI_EXPLANATION.TITLE,WIKI_EXPLANATION.EXPLANATION,WIKI_EXPLANATION.URL
FROM WIKI_EXPLANATION
WHERE WIKI_EXPLANATION.URL NOT IN (SELECT URL FROM HAOBAI);
大家看看我的这个存储过程。表HAOBAI是个空表,为什么执行这个存储过程后,表HAOBAI里只插入了一条数据呢?
大家看看语法对不对,有没有死循环或者别的语法错误? CREATE OR REPLACE PROCEDURE STORE_WIKI AS
DECLARE
question varchar(100);
answer varchar(1000);
url varchar(1000);
question_sum number;
cursor cur is SELECT WIKI_EXPLANATION.TITLE,WIKI_EXPLANATION.EXPLANATION,WIKI_EXPLANATION.URL
FROM WIKI_EXPLANATION
WHERE WIKI_EXPLANATION.URL NOT IN (SELECT URL FROM HAOBAI);
begin
open cur;
fetch cur into question,answer,url;
while cur %found loop
select count(*) into question_sum from HAOBAI where HAOBAI.QUESTION = question;
if question_sum = 0
then
INSERT
INTO HAOBAI
VALUES(question,answer,url);
end if;
commit;
fetch cur into question,answer,url;
end loop;
close cur;
end;
下面这句sql语句读出来的数据有很多条,绝对不止一条。
SELECT WIKI_EXPLANATION.TITLE,WIKI_EXPLANATION.EXPLANATION,WIKI_EXPLANATION.URL
FROM WIKI_EXPLANATION
WHERE WIKI_EXPLANATION.URL NOT IN (SELECT URL FROM HAOBAI);
解决方案 »
- oracle存储过程中二维数组问题
- pl/sql读写文件的错误: ORA-06510和ORA-06512
- SQL SERVER移植到 ORACLE,SQL SERVER中的一些系统表和系统存储过程调用,高分500相送!
- 表的设计问题:关于列的拆分 牢烦大家看看
- 没有的数据我也想找出来怎么找?各位大侠,救命~~~~~~
- 大容量数据库怎么备份呢?(如20G)
- 小弟我再次安装oracle9i又有问题
- 求一存储过程的写法
- 为什么我的奔四装不上oracle817
- execute sys.auto_server_pkg.unlock_table('用户名','表名')
- 求一句sql语句
- oracle9i下,对取出的字段的截取问题
select count(*) into question_sum from HAOBAI where HAOBAI.QUESTION = question
最后这个question优先指向表记录的字段,所以条件永远为真
不过变量一般都加前缀v_,如:v_question