Oracle如何实现带输入输出参数存储过程
发表于:2024-11-16 作者:千家信息网编辑
千家信息网最后更新 2024年11月16日,这篇文章主要介绍Oracle如何实现带输入输出参数存储过程,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!begin /*这里不能直接执行select语句但可以直接执行updat
千家信息网最后更新 2024年11月16日Oracle如何实现带输入输出参数存储过程
这篇文章主要介绍Oracle如何实现带输入输出参数存储过程,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
begin /*这里不能直接执行select语句但可以直接执行update、delete、insert语句*/ end里面不能接执行select语句,声明会话级临时表必须有"execute immediate 'TRUNCATE TABLE 表名'
;"这一句不然其他的session无法drop(TRUNCATE TABLE 表名 必须在 'drop table 表名' 这一句前执行)
create or replace procedure p_DevData(p_id IN varchar2(150),pageIndex in NUMBER,pageCount in NUMBER,totalCount in NUMBER,p_cur out sys_refcursor) AUTHID CURRENT_USERasbegin declare Num_Id number; toCount NUMBER; strSql varchar2(1000); begin strSql:='insert into TEMP_ROBOT_Id select id,robot_typeid from ROBOT where ID=:p_id and IS_DEL=0 and STATUS=1'; execute immediate 'TRUNCATE TABLE TEMP_ROBOT_Id'; execute immediate 'drop table TEMP_ROBOT_Id'; execute immediate 'Create Global Temporary Table TEMP_ROBOT_Id(ro_id varchar2(150),robot_typeid number)On Commit Preserve Rows';--创建会话级临时表execute immediate strSql using p_id; execute immediate 'Commit'; execute immediate 'TRUNCATE TABLE TEMP_Dev_Table'; execute immediate 'drop table TEMP_Dev_Table '; execute immediate 'Create Global Temporary Table TEMP_Dev_Table (id varchar2(150),DEVICE_CODE varchar2(150),NAME varchar2(150))On Commit Preserve Rows';--创建会话级临时表execute immediate 'insert into TEMP_Dev_Table select distinct bai.ID,bai.DEVICE_CODE,bai.NAME from DEVICE_BASE_INFO bai WHERE bai.ROBOT_ID =(select ro_id from TEMP_ROBOT_Id) and IS_DEL=0 and STATUS=1'; execute immediate 'Commit'; execute immediate 'TRUNCATE TABLE TEMP_Dev_data_Table'; execute immediate 'drop table TEMP_Dev_data_Table '; execute immediate ' Create Global Temporary Table TEMP_Dev_data_Table (id varchar2(150),DEVICE_CODE varchar2(150), NAME varchar2(150),type_name varchar2(100),YY_NUM varchar2(10),MM_NUM varchar2(10),Day_NUM varchar2(10), HH_NUM varchar2(10) )On Commit Preserve Rows';--创建会话级临时表select Count(1) Into toCount from TEMP_ROBOT_Id; if toCount>0 then select robot_typeid Into Num_Id from TEMP_ROBOT_Id; if Num_Id=1 then dbms_output.put_line('视频没有数据');elsif Num_Id=2 then dbms_output.put_line('井盖数据不通');elsif Num_Id=3 then execute immediate 'TRUNCATE TABLE TEMP_SMOKE_ALARM_INFO'; execute immediate 'drop table TEMP_SMOKE_ALARM_INFO '; execute immediate 'CREATE GLOBAL TEMPORARY table TEMP_SMOKE_ALARM_INFO ON COMMIT Preserve ROWS as select * from SMOKE_ALARM_INFO';--创建会话级临时表execute immediate 'Commit'; insert into TEMP_Dev_data_Table select t.ID,t.DEVICE_CODE,t.NAME,t.type_name,t.YY_NUM,t.MM_NUM,t.Day_NUM,t.HH_NUM from ( select tab.ID,tab.NAME,tab.DEVICE_CODE,'烟感报警'as type_name, (select count(s.DEVICE_BASE_INFOID) HH_NUM from TEMP_SMOKE_ALARM_INFO s where s.DEVICE_BASE_INFOID=tab.ID group by to_char(s.CREATE_DATE,'YYYY'),s.DEVICE_BASE_INFOID) as YY_NUM from TEMP_Dev_Table tab)t where t.yy_num is not null; Commit; elsif Num_Id=4 then dbms_output.put_line('未知类型');elsif Num_Id=5 then dbms_output.put_line('未知类型');else dbms_output.put_line('未知类型');end if; end if; end; if totalCount<=0 then open p_cur for select * from ( select row_.*, rownum rownum_ from ( select t.* from TEMP_Dev_data_Table t order by t.id desc ) row_ where rownum <=case when pageCount <> 0 then pageCount*1 else rownum end /*每页显示多少条*页数*/ )where rownum_>=case when pageCount <> 0 then /*(页数-1)=0 说明为第一页则(页数-1)*每页显示多少条否则(页数-1)*每页显示多少条+1*/ case when (pageIndex-1)=0 then ((pageIndex-1)*1) else (((pageIndex-1)*pageCount)+1) end else rownum_ end; /*(页数-1)*每页显示多少条+1*/ else open p_cur for select Count(1) as totalCount from TEMP_Dev_data_Table; end if;end p_DevData;
以上是"Oracle如何实现带输入输出参数存储过程"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!
页数
类型
语句
参数
过程
存储
输入
输出
内容
数据
篇文章
井盖
价值
兴趣
小伙
小伙伴
更多
知识
行业
视频
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全法为什么要上传手机号
南邮 光纤传输与网络技术
东营微信公众号软件开发推荐
jira部署创建数据库权限出错
将表从数据库中移出
msde数据库win7
大学生校园网络安全教育宣传片
手机为啥总显示未连接服务器
嵌入式服务器哪个品牌好
数据库数据全部删除
腾讯服务器多少钱
双十一淘宝服务器策略
网络安全课程推荐
vb数据库的访问技术不包括
mpp数据库的特性
master数据库的定义
ckeditor从数据库
风味数据库的建立
汽车软件开发和标定
mysql数据库自增长语句
网络安全英文名词解释
低配服务器
腾讯会议的服务器和串流密钥
数据库raw
网络应用和网络技术
idc网络安全市场份额
深圳服务器硬件销售公司
数据库608错误
软件开发七条原则是什么
软件为什么要服务器