一、

  1. CREATE OR REPLACE PROCEDURE PRC_WAP_ACTIVEUSERS(RETCODE OUT VARCHAR2)
  2. /***********************************************************
  3. * 功能:WAP指标--活跃用户统计(分批提交)
  4. * 参数:RETCODE(返回编码:0000成功)
  5. * 作者:
  6. * 创建时间:2013-01-16
  7. * 版本:1.0
  8. * 修改人:
  9. * 修改时间:
  10. **********************************************************/
  11. IS
  12. RET_CODE VARCHAR2(6);                 --错误信息代码
  13. RET_MSG  VARCHAR2(200);               --错误信息
  14. V_LAST_MONTH      VARCHAR2(8);        --上个月份
  15. V_FIRST_DAY_MONTH VARCHAR2(10);       --上个月第一天
  16. V_END_DAY_MONTH   VARCHAR2(10);       --上个月第二天
  17. V_COUNT           NUMBER;             --计数变量
  18. V_COMMITNUM CONSTANT NUMBER :=1000000;--一次提交记录数(默认一百万)
  19. BEGIN
  20. --程序开始
  21. DBMS_OUTPUT.PUT_LINE('PRC_WAP_ACTIVEUSERS BEGIN : ' ||
  22. TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS'));
  23. RET_CODE := '0000';                   --返回编码初始化
  24. V_COUNT  := 0;                        --计数器初始化
  25. --申明游标
  26. DECLARE
  27. TYPE CUR_DATA_TYPE IS RECORD        --定义动态游标数据类型
  28. (
  29. PHONE_NUM   VARCHAR2(20),         --电话号码
  30. LOGIN_TIMES VARCHAR2(2000));      --访问次数
  31. VRECORD CUR_DATA_TYPE;              --定义数据类型
  32. BEGIN
  33. SELECT TO_CHAR(ADD_MONTHS(LAST_DAY(SYSDATE), -1), 'YYYYMM')
  34. INTO V_LAST_MONTH
  35. FROM DUAL;
  36. SELECT TO_CHAR(ADD_MONTHS(LAST_DAY(SYSDATE) + 1, -2), 'YYYYMMDD')
  37. INTO V_FIRST_DAY_MONTH
  38. FROM DUAL;
  39. SELECT TO_CHAR(ADD_MONTHS(LAST_DAY(SYSDATE), -1), 'YYYYMMDD')
  40. INTO V_END_DAY_MONTH
  41. FROM DUAL;
  42. FOR VRECORD IN (SELECT TEL AS PHONE_NUM, COUNT(T.TEL) AS LOGIN_TIMES
  43. FROM TEMP_BOSS_BIP1A021 T
  44. WHERE T.DAY_ID BETWEEN V_FIRST_DAY_MONTH AND
  45. V_END_DAY_MONTH HAVING COUNT(T.TEL) >= 2
  46. GROUP BY T.TEL) LOOP
  47. INSERT INTO T_BIP1A021
  48. (PHONE_NUM, LOGIN_TIMES, LOGIN_MONTH)
  49. VALUES
  50. (VRECORD.PHONE_NUM, VRECORD.LOGIN_TIMES, V_LAST_MONTH);
  51. IF ((MOD(V_COUNT, V_COMMITNUM)) = 0) THEN
  52. COMMIT;                         --求余:一百万提交一次
  53. END IF;
  54. V_COUNT := V_COUNT + 1;
  55. END LOOP;
  56. COMMIT;
  57. DBMS_OUTPUT.PUT_LINE('PRC_WAP_ACTIVEUSERS END: ' ||
  58. TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS'));
  59. EXCEPTION
  60. WHEN OTHERS THEN
  61. BEGIN
  62. ROLLBACK;
  63. RET_CODE := '0001';
  64. RET_MSG  := '存储过程 PRC_WAP_ACTIVEUSERS 执行错误!' || CHR(10) ||
  65. '错误代码:' || SQLCODE || CHR(10) || '错误信息:' ||
  66. SUBSTR(SQLERRM, 1, 128);
  67. GOTO TOEND;
  68. END;
  69. END;
  70. --返回程序运作结果
  71. <<TOEND>>
  72. RETCODE := RET_CODE;
  73. IF (RET_CODE = '0000') THEN
  74. RET_MSG := '运行成功!';
  75. COMMIT;
  76. ELSE
  77. RET_MSG := '运行失败!' || RET_MSG;
  78. ROLLBACK;
  79. END IF;
  80. DBMS_OUTPUT.PUT_LINE(RET_MSG);
  81. DBMS_OUTPUT.PUT_LINE('END TIME : ' ||
  82. TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS'));
  83. END PRC_WAP_ACTIVEUSERS;
CREATE OR REPLACE PROCEDURE PRC_WAP_ACTIVEUSERS(RETCODE OUT VARCHAR2)
/***********************************************************
* 功能:WAP指标--活跃用户统计(分批提交)
* 参数:RETCODE(返回编码:0000成功)
* 作者:
* 创建时间:2013-01-16
* 版本:1.0
* 修改人:
* 修改时间:
**********************************************************/
IS
RET_CODE VARCHAR2(6); --错误信息代码
RET_MSG VARCHAR2(200); --错误信息
V_LAST_MONTH VARCHAR2(8); --上个月份
V_FIRST_DAY_MONTH VARCHAR2(10); --上个月第一天
V_END_DAY_MONTH VARCHAR2(10); --上个月第二天
V_COUNT NUMBER; --计数变量
V_COMMITNUM CONSTANT NUMBER :=1000000;--一次提交记录数(默认一百万) BEGIN
--程序开始
DBMS_OUTPUT.PUT_LINE('PRC_WAP_ACTIVEUSERS BEGIN : ' ||
TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS')); RET_CODE := '0000'; --返回编码初始化
V_COUNT := 0; --计数器初始化
--申明游标
DECLARE
TYPE CUR_DATA_TYPE IS RECORD --定义动态游标数据类型
(
PHONE_NUM VARCHAR2(20), --电话号码
LOGIN_TIMES VARCHAR2(2000)); --访问次数 VRECORD CUR_DATA_TYPE; --定义数据类型
BEGIN SELECT TO_CHAR(ADD_MONTHS(LAST_DAY(SYSDATE), -1), 'YYYYMM')
INTO V_LAST_MONTH
FROM DUAL; SELECT TO_CHAR(ADD_MONTHS(LAST_DAY(SYSDATE) + 1, -2), 'YYYYMMDD')
INTO V_FIRST_DAY_MONTH
FROM DUAL; SELECT TO_CHAR(ADD_MONTHS(LAST_DAY(SYSDATE), -1), 'YYYYMMDD')
INTO V_END_DAY_MONTH
FROM DUAL; FOR VRECORD IN (SELECT TEL AS PHONE_NUM, COUNT(T.TEL) AS LOGIN_TIMES
FROM TEMP_BOSS_BIP1A021 T
WHERE T.DAY_ID BETWEEN V_FIRST_DAY_MONTH AND
V_END_DAY_MONTH HAVING COUNT(T.TEL) >= 2
GROUP BY T.TEL) LOOP INSERT INTO T_BIP1A021
(PHONE_NUM, LOGIN_TIMES, LOGIN_MONTH)
VALUES
(VRECORD.PHONE_NUM, VRECORD.LOGIN_TIMES, V_LAST_MONTH); IF ((MOD(V_COUNT, V_COMMITNUM)) = 0) THEN
COMMIT; --求余:一百万提交一次
END IF; V_COUNT := V_COUNT + 1; END LOOP; COMMIT; DBMS_OUTPUT.PUT_LINE('PRC_WAP_ACTIVEUSERS END: ' ||
TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS'));
EXCEPTION
WHEN OTHERS THEN
BEGIN
ROLLBACK;
RET_CODE := '0001';
RET_MSG := '存储过程 PRC_WAP_ACTIVEUSERS 执行错误!' || CHR(10) ||
'错误代码:' || SQLCODE || CHR(10) || '错误信息:' ||
SUBSTR(SQLERRM, 1, 128);
GOTO TOEND;
END;
END; --返回程序运作结果
<<TOEND>>
RETCODE := RET_CODE;
IF (RET_CODE = '0000') THEN
RET_MSG := '运行成功!';
COMMIT;
ELSE
RET_MSG := '运行失败!' || RET_MSG;
ROLLBACK;
END IF; DBMS_OUTPUT.PUT_LINE(RET_MSG); DBMS_OUTPUT.PUT_LINE('END TIME : ' ||
TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS')); END PRC_WAP_ACTIVEUSERS;

二、

  1. CREATEORREPLACEPROCEDURE PRC_WAP_ACTIVEUSERS_BATCH(RETCODE OUT VARCHAR2,
  2. V_TABLE IN VARCHAR2)
  3. /***********************************************************
  4. * 功能:WAP指标--活跃用户统计(分批提交)                *
  5. * 参数:RETCODE(返回编码),V_TABLE(插入表)           *
  6. * 作者:ZENGMS                                           *
  7. * 创建时间:2013-01-16                                   *
  8. * 版本:1.0                                              *
  9. * 修改人:                                               *
  10. * 修改时间:                                             *
  11. **********************************************************/
  12. IS
  13. RET_CODE          VARCHAR2(6);                 --错误信息代码
  14. RET_MSG           VARCHAR2(200);               --错误信息
  15. EXEC_SQL          VARCHAR2(2000);              --SQL语句
  16. V_LAST_MONTH      VARCHAR2(8);                 --上个月份
  17. V_FIRST_DAY_MONTH VARCHAR2(10);                --上个月第一天
  18. V_END_DAY_MONTH   VARCHAR2(10);                --上个月第二天
  19. V_TOTALNUM        NUMBER;                      --总记录数
  20. V_COMMITNUM       NUMBER;                      --一次提交数量
  21. V_RUNTIME         NUMBER;                      --运行次数
  22. V_NUM             NUMBER;                      --循环变量
  23. BEGIN
  24. --程序开始
  25. DBMS_OUTPUT.PUT_LINE('PRC_WAP_ACTIVEUSERS_BATCH BEGIN : ' ||
  26. TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS'));
  27. RET_CODE    := '0000';
  28. V_COMMITNUM := 1000000;                        --一百万提交一次
  29. BEGIN
  30. SELECT TO_CHAR(ADD_MONTHS(LAST_DAY(SYSDATE), -1), 'YYYYMM')
  31. INTO V_LAST_MONTH
  32. FROM DUAL;
  33. SELECT TO_CHAR(ADD_MONTHS(LAST_DAY(SYSDATE) + 1, -2), 'YYYYMMDD')
  34. INTO V_FIRST_DAY_MONTH
  35. FROM DUAL;
  36. SELECT TO_CHAR(ADD_MONTHS(LAST_DAY(SYSDATE), -1), 'YYYYMMDD')
  37. INTO V_END_DAY_MONTH
  38. FROM DUAL;
  39. EXEC_SQL := 'SELECTCOUNT(1) FROM(SELECT TEL AS PHONE_NUM, COUNT(T.TEL)
  40. AS LOGIN_TIMES,''' || V_LAST_MONTH ||
  41. ''' AS LOGIN_MONTH
  42. FROM TEMP_BOSS_BIP1A021 T
  43. WHERE T.DAY_ID BETWEEN''' ||
  44. V_FIRST_DAY_MONTH || ''' AND ''' || V_END_DAY_MONTH ||
  45. ''' HAVING COUNT(T.TEL) >= 2 GROUP BY T.TEL)';
  46. EXECUTE IMMEDIATE EXEC_SQL INTO V_TOTALNUM;    --获取总记录数
  47. --计算循环次数
  48. V_RUNTIME := V_TOTALNUM MOD V_COMMITNUM;
  49. IF (V_RUNTIME > 0) THEN
  50. V_RUNTIME := 1 + TRUNC(V_TOTALNUM / V_COMMITNUM);
  51. END IF;
  52. IF (V_RUNTIME = 0) THEN
  53. V_RUNTIME := 0 + TRUNC(V_TOTALNUM / V_COMMITNUM);
  54. END IF;
  55. --分批提交数据库
  56. FOR V_NUM IN 1 .. V_RUNTIME LOOP
  57. EXEC_SQL := 'INSERT INTO ' || V_TABLE || '
  58. (PHONE_NUM, LOGIN_TIMES, LOGIN_MONTH, ROWNUMS)
  59. SELECT PHONE_NUM, LOGIN_TIMES, LOGIN_MONTH, ROWNUM AS ROWNUMS
  60. FROM (SELECT TEL AS PHONE_NUM,
  61. COUNT(T.TEL) AS LOGIN_TIMES,''' ||
  62. V_LAST_MONTH ||
  63. ''' AS LOGIN_MONTH
  64. FROM TEMP_BOSS_BIP1A021 T
  65. WHERE T.DAY_ID BETWEEN''' ||
  66. V_FIRST_DAY_MONTH || ''' AND ''' || V_END_DAY_MONTH ||
  67. ''' HAVING
  68. COUNT(T.TEL) >= 2
  69. GROUPBY T.TEL) WHERE ROWNUM>' ||
  70. (V_NUM - 1) * V_COMMITNUM || ' AND ROWNUM <=' ||
  71. V_NUM * V_COMMITNUM;
  72. EXECUTE IMMEDIATE EXEC_SQL;
  73. COMMIT; --提交
  74. END LOOP;
  75. DBMS_OUTPUT.PUT_LINE('PRC_WAP_ACTIVEUSERS_BATCH END: ' ||
  76. TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS'));
  77. EXCEPTION
  78. WHEN OTHERS THEN
  79. BEGIN
  80. ROLLBACK;
  81. RET_CODE := '0001';
  82. RET_MSG  := '存储过程PRC_WAP_ACTIVEUSERS_BATCH执行错误!' || CHR(10) ||
  83. '错误代码:' || SQLCODE || CHR(10) || '错误信息:' ||
  84. SUBSTR(SQLERRM, 1, 128);
  85. GOTO TOEND;
  86. END;
  87. END;
  88. --返回程序运作结果
  89. RETCODE := RET_CODE;
  90. <<TOEND>>
  91. IF (RET_CODE = '0000') THEN
  92. RET_MSG := '运行成功!';
  93. COMMIT;
  94. ELSE
  95. RET_MSG := '运行失败!' || RET_MSG;
  96. END IF;
  97. DBMS_OUTPUT.PUT_LINE(RET_MSG);
  98. DBMS_OUTPUT.PUT_LINE('END TIME : ' ||
  99. TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS'));
  100. END PRC_WAP_ACTIVEUSERS_BATCH;
CREATE OR REPLACE PROCEDURE PRC_WAP_ACTIVEUSERS_BATCH(RETCODE OUT VARCHAR2,
V_TABLE IN VARCHAR2)
/***********************************************************
* 功能:WAP指标--活跃用户统计(分批提交) *
* 参数:RETCODE(返回编码),V_TABLE(插入表) *
* 作者:ZENGMS *
* 创建时间:2013-01-16 *
* 版本:1.0 *
* 修改人: *
* 修改时间: *
**********************************************************/
IS
RET_CODE VARCHAR2(6); --错误信息代码
RET_MSG VARCHAR2(200); --错误信息
EXEC_SQL VARCHAR2(2000); --SQL语句
V_LAST_MONTH VARCHAR2(8); --上个月份
V_FIRST_DAY_MONTH VARCHAR2(10); --上个月第一天
V_END_DAY_MONTH VARCHAR2(10); --上个月第二天
V_TOTALNUM NUMBER; --总记录数
V_COMMITNUM NUMBER; --一次提交数量
V_RUNTIME NUMBER; --运行次数
V_NUM NUMBER; --循环变量 BEGIN
--程序开始
DBMS_OUTPUT.PUT_LINE('PRC_WAP_ACTIVEUSERS_BATCH BEGIN : ' ||
TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS'));
RET_CODE := '0000';
V_COMMITNUM := 1000000; --一百万提交一次 BEGIN SELECT TO_CHAR(ADD_MONTHS(LAST_DAY(SYSDATE), -1), 'YYYYMM')
INTO V_LAST_MONTH
FROM DUAL; SELECT TO_CHAR(ADD_MONTHS(LAST_DAY(SYSDATE) + 1, -2), 'YYYYMMDD')
INTO V_FIRST_DAY_MONTH
FROM DUAL; SELECT TO_CHAR(ADD_MONTHS(LAST_DAY(SYSDATE), -1), 'YYYYMMDD')
INTO V_END_DAY_MONTH
FROM DUAL; EXEC_SQL := 'SELECT COUNT(1) FROM(SELECT TEL AS PHONE_NUM, COUNT(T.TEL)
AS LOGIN_TIMES,''' || V_LAST_MONTH ||
''' AS LOGIN_MONTH
FROM TEMP_BOSS_BIP1A021 T
WHERE T.DAY_ID BETWEEN ''' ||
V_FIRST_DAY_MONTH || ''' AND ''' || V_END_DAY_MONTH ||
''' HAVING COUNT(T.TEL) >= 2 GROUP BY T.TEL)'; EXECUTE IMMEDIATE EXEC_SQL INTO V_TOTALNUM; --获取总记录数 --计算循环次数
V_RUNTIME := V_TOTALNUM MOD V_COMMITNUM; IF (V_RUNTIME > 0) THEN
V_RUNTIME := 1 + TRUNC(V_TOTALNUM / V_COMMITNUM);
END IF;
IF (V_RUNTIME = 0) THEN
V_RUNTIME := 0 + TRUNC(V_TOTALNUM / V_COMMITNUM);
END IF; --分批提交数据库
FOR V_NUM IN 1 .. V_RUNTIME LOOP EXEC_SQL := 'INSERT INTO ' || V_TABLE || '
(PHONE_NUM, LOGIN_TIMES, LOGIN_MONTH, ROWNUMS)
SELECT PHONE_NUM, LOGIN_TIMES, LOGIN_MONTH, ROWNUM AS ROWNUMS
FROM (SELECT TEL AS PHONE_NUM,
COUNT(T.TEL) AS LOGIN_TIMES,''' ||
V_LAST_MONTH ||
''' AS LOGIN_MONTH
FROM TEMP_BOSS_BIP1A021 T
WHERE T.DAY_ID BETWEEN ''' ||
V_FIRST_DAY_MONTH || ''' AND ''' || V_END_DAY_MONTH ||
''' HAVING
COUNT(T.TEL) >= 2
GROUP BY T.TEL) WHERE ROWNUM>' ||
(V_NUM - 1) * V_COMMITNUM || ' AND ROWNUM <=' ||
V_NUM * V_COMMITNUM; EXECUTE IMMEDIATE EXEC_SQL;
COMMIT; --提交 END LOOP; DBMS_OUTPUT.PUT_LINE('PRC_WAP_ACTIVEUSERS_BATCH END: ' ||
TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS'));
EXCEPTION
WHEN OTHERS THEN
BEGIN
ROLLBACK;
RET_CODE := '0001';
RET_MSG := '存储过程PRC_WAP_ACTIVEUSERS_BATCH执行错误!' || CHR(10) ||
'错误代码:' || SQLCODE || CHR(10) || '错误信息:' ||
SUBSTR(SQLERRM, 1, 128);
GOTO TOEND;
END;
END; --返回程序运作结果
RETCODE := RET_CODE;
<<TOEND>>
IF (RET_CODE = '0000') THEN
RET_MSG := '运行成功!';
COMMIT;
ELSE
RET_MSG := '运行失败!' || RET_MSG;
END IF; DBMS_OUTPUT.PUT_LINE(RET_MSG); DBMS_OUTPUT.PUT_LINE('END TIME : ' ||
TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS')); END PRC_WAP_ACTIVEUSERS_BATCH;

三、

  1. CREATEORREPLACEPROCEDURE PRC_BS_ASS_MODIFYRESULT
  2. (ASSESS_TIME IN VARCHAR2,       --时间
  3. OBJECT_ID   IN VARCHAR2,       --对象ID
  4. KPI_ID      IN VARCHAR2,       --指标ID
  5. MOD_DATA    IN VARCHAR2,       --修改后的数据
  6. O_INFO      OUT VARCHAR2       --返回执行信息
  7. ) AS
  8. TYPE MYCURSOR IS REF CURSOR;  --定义游标类型
  9. CUR MYCURSOR;                 --定义游标
  10. TYPE CUR_DATA_TYPE IS RECORD  --定义游标数据类型
  11. (
  12. RESULT_ID    VARCHAR2(20),  --系统(人工)结果ID
  13. RULE_CONTENT VARCHAR2(2000) --解析后的规则
  14. );
  15. VRECORD CUR_DATA_TYPE;        --定义数据类型
  16. RET_CODE VARCHAR2(6);         --错误信息代码
  17. RET_MSG  VARCHAR2(200);       --错误信息
  18. EXEC_SQL VARCHAR2(1500);      --SQL语句
  19. BEGIN
  20. --程序开始
  21. DBMS_OUTPUT.PUT_LINE('START TIME : ' ||
  22. TO_CHAR(SYSDATE, 'yyyy-mm-dd hh24:mi:ss'));
  23. RET_CODE := '000000';
  24. --修改数据明细
  25. BEGIN
  26. DBMS_OUTPUT.PUT_LINE('修改数据明细 BEGIN: ' ||
  27. TO_CHAR(SYSDATE, 'yyyy-mm-dd hh24:mi:ss'));
  28. EXEC_SQL := 'UPDATE BS_ASS_RESULTLIST_INFO
  29. SET KPI_VAL = ' || MOD_DATA || '
  30. WHERE ASSESS_TIME = ''' || ASSESS_TIME || '''
  31. AND KPI_ID = ''' || KPI_ID || '''
  32. AND OBJECT_ID = ''' || OBJECT_ID || '''';
  33. EXECUTE IMMEDIATE EXEC_SQL;
  34. DBMS_OUTPUT.PUT_LINE('修改数据明细 END: ' ||
  35. TO_CHAR(SYSDATE, 'yyyy-mm-dd hh24:mi:ss'));
  36. EXCEPTION
  37. WHEN OTHERS THEN
  38. BEGIN
  39. RET_CODE := '000001';
  40. RET_MSG  := '修改数据明细时信息错误!' || CHR(10) || '错误代码:' || SQLCODE ||
  41. CHR(10) || '错误信息:' || SUBSTR(SQLERRM, 1, 128);
  42. GOTO TOEND;
  43. END;
  44. END;
  45. --借助动态游标,计算修改数据明细项
  46. BEGIN
  47. DBMS_OUTPUT.PUT_LINE('计算修改明细 BEGIN: ' ||
  48. TO_CHAR(SYSDATE, 'yyyy-mm-dd hh24:mi:ss'));
  49. EXEC_SQL := 'SELECT RESULT_ID , RULE_CONTENT
  50. FROM BS_ASS_RESULTLIST_INFO
  51. WHERE ASSESS_TIME = ''' || ASSESS_TIME || '''
  52. AND KPI_ID = ''' || KPI_ID || '''
  53. AND OBJECT_ID = ''' || OBJECT_ID || '''';
  54. OPEN CUR FOR EXEC_SQL;
  55. LOOP
  56. FETCH CUR
  57. INTO VRECORD;
  58. EXIT WHEN CUR%NOTFOUND;
  59. EXEC_SQL := 'UPDATE BS_ASS_RESULTLIST_INFO
  60. SET (ASS_MARK,
  61. FINAL_MARK) = (SELECT (' ||
  62. VRECORD.RULE_CONTENT || ') * A.KPI_COEFFICIENT,(' ||
  63. VRECORD.RULE_CONTENT || ') * A.KPI_COEFFICIENT * A.REFER_COEFFICIENT
  64. FROM BS_ASS_RESULTLIST_INFO A
  65. WHERE A.RESULT_ID = ''' || VRECORD.RESULT_ID || ''')
  66. WHERE RESULT_ID = ''' || VRECORD.RESULT_ID || '''';
  67. EXECUTE IMMEDIATE EXEC_SQL;
  68. END LOOP;
  69. DBMS_OUTPUT.PUT_LINE('计算修改明细 END: ' ||
  70. TO_CHAR(SYSDATE, 'yyyy-mm-dd hh24:mi:ss'));
  71. EXCEPTION
  72. WHEN OTHERS THEN
  73. BEGIN
  74. RET_CODE := '000002';
  75. RET_MSG  := '计算修改明细时信息错误!' || CHR(10) || '错误代码:' || SQLCODE ||
  76. CHR(10) || '错误信息:' || SUBSTR(SQLERRM, 1, 128);
  77. GOTO TOEND;
  78. END;
  79. END;
  80. --返回程序运行结果
  81. <<TOEND>>
  82. IF (RET_CODE = '000000') THEN
  83. RET_MSG := '运行成功!';
  84. O_INFO  := 'SUCCESS';
  85. COMMIT;
  86. ELSE
  87. RET_MSG := '运行失败!' || RET_MSG;
  88. O_INFO  := 'FALSE';
  89. ROLLBACK;
  90. END IF;
  91. DBMS_OUTPUT.PUT_LINE(RET_MSG);
  92. DBMS_OUTPUT.PUT_LINE('END TIME : ' ||
  93. TO_CHAR(SYSDATE, 'yyyy-mm-dd hh24:mi:ss'));
  94. END PRC_BS_ASS_MODIFYRESULT;

oracal 游标的更多相关文章

  1. 用游标实现查询当前服务器所有数据库所有表的SQL

    declare @name varchar(100) DECLARE My_Cursor CURSOR --定义游标 FOR (SELECT Name FROM Master..SysDatabase ...

  2. 使用rowid抽取数据方法以及大数据量游标卡住的应对

    平时工作的时候,经常会遇到这种事情,从一个大表A中,抽取字段a在一个相对较小B的表的数据,比如,从一个详单表中,抽取几万个用户号码的话单出来.这种时候,一般来说, 做关联查询: create tabl ...

  3. Mysql - 游标/动态sql/事务

    游标这个在我目前的项目里面用的还不多, 但是其功能还是很强大的. 动态sql以前都没用过, 是跟着富士康(不是张全蛋的富土康哦)过来的同事学的. 还是挺好用的. 我的数据库方面, 跟他学了不少. 在此 ...

  4. SQL Server 游标运用:鼠标轨迹字符串分割

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 游标模板(Cursor Template) 鼠标轨迹字符串分割SQL脚本实现(SQL Code ...

  5. 读书笔记--SQL必知必会21--使用游标

    21.1 游标 结果集(result set),SQL查询说检出的结果. 游标(cusror),是一个存储在DBMS服务器上的数据库查询. 游标不是一条SELECT语句,而是被该句检索出来的结果集. ...

  6. sqlserver 游标的使用

    declare @temp_temp uniqueidentifier--临时变量 DECLARE aaa CURSOR for select Id from A ------------------ ...

  7. MySQL动态游标

    通过(准备语句+视图+静态游标)实现 -- 建立测试表和数据 create table webuser (username varchar(10)); insert into webuser valu ...

  8. SQL Server游标(转)

    清晰地介绍了SQL游标,很好的学习资料. 转自 http://www.cnblogs.com/knowledgesea/p/3699851.html 什么是游标 结果集,结果集就是select查询之后 ...

  9. ABAP游标的使用

    在Oracle,SQLServer中游标的使用是经常的,所以在ABAP不懂是不行的......     1.声明游标 OPEN CURSOR [WITH HOLD] <c> FOR SEL ...

随机推荐

  1. django+pymysql搭建一个管理系统(一)

    django+pymysql搭建一个管理系统(一) 后续进行代码更新,优化 一.程序架构 二.mysql表单创建 zouye库:存信息相关的 #班级表 create table classes( ci ...

  2. POJ2773Happy2006题解--数论好题

    题目链接 https://cn.vjudge.net/problem/POJ-2773 题意: 求第\(k\)个与\(m\)互质的数 分析 因为\(gcd(a,b)=gcd(a+t * b,b)\) ...

  3. 深入JavaScript对象(Object)与类(class),详细了解类、原型

    JavaScript基于原型的对象机制 JavaScript原型上的哪些事 一.JavaScript基于原型的对象机制 JavaScript对象是基于原型的面向对象机制.在一定程度上js基于原型的对象 ...

  4. vue路径中的#号

    最近学习vue过程中,发现路径当中总是存在一个#号,比如这个: 这种情况是因为在入口js文件中,如果你不更改设置的话,vue会默认使用hash模式,该模式下回将路径格式化为 # 开头. 如果需要美化路 ...

  5. 【Distributed】大型网站高并发和高可用

    一.DNS域名解析 二.大型网站系统应有的特点 三.网站架构演变过程 3.1 传统架构 3.2 分布式架构 3.3 SOA架构 3.4 微服务架构 四.高并发设计原则 4.1 拆分系统 4.2 服务化 ...

  6. ASP.config配置

    使用ASP.NET搭建三层时候, 有Model (模型)DAL(数据访问层)    BLL(业务逻辑层)  连接数据库的DBhelper 放在DAL层 假如 你数据库密码改了,你要打开VS 找到DBh ...

  7. web开发:jquery之DOM

    一.文档结构 二.文档操作 三.文档操作案例 四.form表单 五.正则 六.form案例 一.文档结构 ```jsvar $sup = $('.sup');console.log($sup.chil ...

  8. C 字符串几点

    1.字符串结尾必须为“\0” 2.多种处理函数在<string.h> 3.常用字符串处理函数: 1.strlen 求字符串长度(\0不算在内) 2.strcpy(a,b) 将b复制到a中 ...

  9. Unicode(统一码、万国码、单一码)

    Unicode(统一码.万国码.单一码)是一种在计算机上使用的字符编码.它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言.跨平台进行文本转换.处理的要求.1990年开始研发,199 ...

  10. java——maven依赖版本冲突

    博客:maven依赖jar包时版本冲突的解决