创建一个循环写入数据有事务提交的oracle函数示例
/*创建函数*/
create or replace function fnc_testtempInfo(startDate IN varchar2,
endDate in varchar2)
return VARCHAR2 is
v_status VARCHAR2(50);--临时变量
v_paramDate VARCHAR2(50);--全局参数变量
v_StartDate varchar2(10) := startDate;--传入参数
v_EndDate varchar2(10) := endDate;--传入参数
/*声明一个日期参数游标*/
cursor paramDate_cursor is
/*该区间日期内 所有日期 起点循环日期*/
SELECT to_char(TO_DATE(v_StartDate, 'YYYY-MM-DD') + ROWNUM - 1,'yyyy-mm-dd') paramDate /*StartDate*/
FROM DUAL
/*区间范围*/
CONNECT BY ROWNUM <= TO_DATE(v_EndDate, 'YYYY-MM-DD') /*enddate*/
-TO_DATE(v_StartDate, 'YYYY-MM-DD') + 1 /*StartDate*/
;
begin
/*开启游标,循环*/
for p_cur in paramDate_cursor loop
v_paramDate := p_cur.paramDate;/*将游标里的每个日期依次赋值给变量参数*/
/*循环体内 逻辑处理-按日期依次写入数*/
insert into ldcode (CODETYPE, CODE, CODENAME, CODEALIAS, COMCODE, OTHERSIGN)
values ('tempSaveType', v_paramDate,'测试数据', null, null, null);
--事务提交,每个循环提交一次
commit;
--循环结束
end loop;
--正常处理返回
--v_status := '1';
return v_paramDate;
EXCEPTION
WHEN OTHERS THEN
--异常返回
--v_status := '-1';
return v_paramDate;
end;
/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!