概述
存储过程循环
create or replace procedure procedure_name [有参数就写,没参数就不写 ]
as
cursor cursor_name -- 游标,是用存储数据的
is
select 字段名,......,[ 或者是 * ] from table_name [可以加各种条件 ] ;(第一张表)
Parameter_name 字段类型 ;
...... ;
begin
for 自定义名(info) in cursor_name loop -- 循环
-- 例如,要先删除已存在的数据,再添加,之前有出过问题(不知道是不是没有分开的缘故),所以将插入和删除语句放在两个循环中;
select count (字段名/ * ) into parameter_name from table_name where 字段名=
Info.上面is后面查询语句对应的字段名
PS:(两张表的名称可以不同,类型不同的话,需要转换); (第二张表)
--判断数据是否存在
If parameter_name >0 then
delete from table_name where 字段名=info.第一张表字段名 ;
End if;
End loop;
Commit; --一定要提交,要不会死锁
for 自定义名(info) in cursor_name loop -- 循环
Insert into table_name values(info.一表字段名,............ );
End loop;
Commit; --一定要提交,要不会死锁
End ;
错误情况:
ORA-02070: 数据库 B2B2 不支持此上下文中的 TO_NUMBER
原因:
是因为两张表字段不一致,需要转换;
Eg: goodsid 一个是varchar2,类型,另一个是number类型,
change _Parameter_type_name varchar2( n ); --参数类型
-- 当用到该参数时,转换:
change _Parameter_type_name :=info(循环里的同上).要转换的字段名
最后
以上就是虚幻西装为你收集整理的存储过程中的循环加判断的全部内容,希望文章能够帮你解决存储过程中的循环加判断所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复