Oracle 动态SQL语句(3)之保存存储过程
2012-09-26 09:22
771 查看
根据上两个关于动态SQL语句的改写,当调试运行没有问题后,可以把很多测试用的SQl语句或重复注释删除,但一定要把原始存储过程或函数保存。
create or replace procedure sp_update_mnl00(i_id varchar2,i_realtime varchar2,i_min00 float, i_avg00 float,i_max00 float ) authid current_user as /*********************** 名称:sp_update_mnl00 功能描述:更新模拟量历史数据表中含00的列表项 修订记录: 版本号 编辑时间 编辑人 修改描述 1.0.0 2012-9-22 WY_laoK 1.创建此存储过程 1.0.1 2012-9-25 WY_laoK 2.修改动态SQL语句,主要包括变量的使用和WHERE语句的书写 1.0.2 2012-9-25 WY_laoK 3.删除部分重复注释的语句、测试用SQL语句 注释 入参出参描述: i_id 测点编号 i_realtime 更新时间 i_min00 00-04分钟内最小值 i_avg00 00-04分钟内平均值 i_max00 00-04分钟内最大值 ************************/ v_recordnum NUMBER:=0;--标识是否存在记录 v_tablename varchar2(30);--表名 v_sql_statement varchar2(200);--执行的SQL语句 --v_time varchar2(30);--时间 --v_datetime date; begin v_tablename:= fun_create_mnl(i_id);--获取表名,如果有直接获取,没有则创建表 --判断是否含有此时间下的列 v_sql_statement:='select count(DATETIME) from '||v_tablename|| ' Where DATETIME=to_date('''||i_realtime||''',''yyyy-mm-dd hh24-mi-ss'')';--WHERE语句三个引号*** --Dbms_output.put_line(v_sql_statement); --输出SQL语句 execute immediate v_sql_statement into v_recordnum ; IF v_recordnum=0 THEN --没有则插入 execute immediate 'INSERT INTO '||v_tablename||'(DATETIME,MIN00,AVG00,MAX00) VALUES (to_date('''||i_realtime||''',''yyyy-mm-dd hh24-mi-ss''),'||i_min00||','||i_avg00||','||i_max00||')'; -- v_sql_statement:= 'INSERT INTO '||v_tablename||'(DATETIME,MIN00,AGV00,MAX00) -- VALUES (to_date('''||i_realtime||''',''yyyy-mm-dd hh24-mi-ss''),'||i_min00||','||i_agv00||','||i_max00||')'; -- execute immediate v_sql_statement; ElSE --有则更新 execute immediate 'UPDATE '||v_tablename||' SET MIN00='||i_min00||',AVG00='||i_avg00||',MAX00='||i_max00||' WHERE DATETIME=to_date('''||i_realtime||''',''yyyy-mm-dd hh24-mi-ss'')'; end if; commit;--数据更新 end ;
相关文章推荐
- oracle存储过程中如何执行动态SQL语句
- sql server、db2、oracle 存储过程动态sql语句示例
- oracle存储过程中如何执行动态SQL语句
- Oracle 动态SQL语句(4)之存储过程的调用与浅谈字符串的使用
- 简单搞一下 Oracle 存储过程动态SQL之获取查询总数!
- oracle 存储过程执行可输入sql语句并返回结果集
- oracle 解除 sql语句、存储过程在执行中造成的锁
- 存储过程中执行动态Sql语句
- Oracle 过程中执行动态 SQL 或 DDL 语句
- MSSQL存储过程中执行动态Sql语句
- 存储过程中执行动态Sql语句
- oracle sql语句怎么查询所有存储过程中是否包含某个注释?
- ORACLE 包内的存储过程的动态sql
- 用sql语句导出oracle中的存储过程和函数
- oracle存储过程如何定义,动态判断条件sql如何书写
- Oracle中sql语句查看存储过程内容
- oracle存储过程中应用动态sql
- 存储过程中执行动态Sql语句
- 存储过程中执行动态Sql语句
- MySQL存储过程中实现执行动态SQL语句的方法