Oracle带输入、输出参数的存储过程 返回受影响的行数 SQL%ROWCOUNT
2014-10-27 16:35
1036 查看
CREATE OR REPLACE PROCEDURE PROC_UPDATE_TEMP(P_DAYS IN NUMBER, --执行天数 P_ROWS OUT VARCHAR2, --返回受影响的行数 P_IS_SUCCESS OUT BOOLEAN) --返回成功与否 AS V_NOW DATE := TRUNC(SYSDATE); V_BEGIN_DATE DATE; V_SECOND NUMBER; I INT := 0; BEGIN /* WHILE I < P_DAYS LOOP UPDATE T_TEMP SET TEMP_STATUS = '01', TEMP_FLAG = '0' WHERE CREATE_TIME >= V_NOW - I AND CREATE_TIME < V_NOW + 1 - I; COMMIT; I = I + 1; END LOOP;*/ FOR I IN 0 .. P_DAYS LOOP BEGIN V_BEGIN_DATE := SYSDATE; UPDATE T_TEMP SET TEMP_STATUS = '01', TEMP_FLAG = '0' WHERE CREATE_TIME >= V_NOW - I AND CREATE_TIME < V_NOW + 1 - I; P_IS_SUCCESS := TRUE; V_SECOND := (SYSDATE - V_BEGIN_DATE) * 24 * 60 * 60; --返回受影响的行数:SQL%ROWCOUNT P_ROWS := SQL%ROWCOUNT || '行被更新,耗时:' || TRUNC(V_SECOND, 2) || '秒'; DBMS_OUTPUT.PUT_LINE(P_ROWS); COMMIT; EXCEPTION WHEN NO_DATA_FOUND THEN NULL; P_IS_SUCCESS := FALSE; END; END LOOP; END PROC_UPDATE_TEMP;
--调用存储过程 DECLARE -- Boolean parameters are translated from/to integers: -- 0/1/null <--> false/true/null P_IS_SUCCESS BOOLEAN; P_ROWS VARCHAR2(200); BEGIN -- Call the procedure PKG_STL_UPDATE_BILL_DATA.PROC_STL_UPDATE_TRUNC(P_DAYS => 0, P_ROWS => P_ROWS, P_IS_SUCCESS => P_IS_SUCCESS); -- Convert false/true/null to 0/1/null --:P_IS_SUCCESS := SYS.DIUTIL.BOOL_TO_INT(P_IS_SUCCESS); dbms_output.put_line(P_ROWS); dbms_output.put_line(SYS.DIUTIL.BOOL_TO_INT(P_IS_SUCCESS)); END;
--SQL%ROWCOUNT用法 BEGIN UPDATE T_JOB T SET T.JOB_ID = NULL WHERE T.ID = '2013'; IF (SQL%ROWCOUNT != 1) THEN RAISE_APPLICATION_ERROR(-20001, '没有成功修改到记录'); END IF; END;
RAISE_APPLICATION_ERROR的用法可参考http://blog.csdn.net/a416090287/article/details/8699940
转载自:http://blog.csdn.net/rosanu_blog/article/details/8698739
相关文章推荐
- Oracle带输入、输出参数的存储过程 返回受影响的行数 SQL%ROWCOUNT
- 数据库操作_连接SQL Server数据库示例;连接ACCESS数据库;连接到 Oracle 数据库示例;SqlCommand 执行SQL命令示例;SqlDataReader 读取数据示例;使用DataAdapter填充数据到DataSet;使用DataTable存储数据库表;将数据库数据填充到 XML 文件;10 使用带输入参数的存储过程;11 使用带输入、输出参数的存储过程示;12 获得数据库中表的数目和名称;13 保存图片到SQL Server数据库示例;14 获得插入记录标识号;Exce
- oracle sql%rowcount 返回影响行数
- Oracle sql%rowcount 返回影响行数;sql server @@RowCount返回影响行数
- oracle sql%rowcount 返回影响行数 .
- oracle sql%rowcount 返回影响行数
- sql%rowcount 返回影响行数
- oracle 存储过程执行可输入sql语句并返回结果集
- SqlCommand.ExecuteNonQuery() 执行存储过程不返回受影响行数
- Oracle带输入输出参数的存储过程
- Java调用SQL存储过程 输入输出参数
- Java调用SQL存储过程 输入输出参数(转)
- Sql 2005 存储过程参数【多次引用】结合C#影响输出速度问题
- JAVA调用ORACLE带数组输入参数和返回游标结果集的存储过程
- 常识:Oracle 匿名存储过程。返回影响行数。
- Java调用SQL存储过程 输入输出参数
- SQL @@error&@@rowcount 返回异常及影响行数
- sql%rowcount 返回影响行数
- sql 存储过程 输出参数 输入参数
- [译]DbContext API中使用SqlQuery和ExecuteSqlCommand获取存储过程的输入输出参数