Oracle存储过程实例.doc_第1页
Oracle存储过程实例.doc_第2页
Oracle存储过程实例.doc_第3页
Oracle存储过程实例.doc_第4页
Oracle存储过程实例.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膄艿薁蚂肀芈蚃袇羆芇莃蚀袂芆薅袆袈芅蚇螈膇芅莇羄肃芄葿螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆腿蒃螂虿肅蒂蒁羅羁肈薃螈袇肇蚆羃膅肆莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膄艿薁蚂肀芈蚃袇羆芇莃蚀袂芆薅袆袈芅蚇螈膇芅莇羄肃芄葿螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆腿蒃螂虿肅蒂蒁羅羁肈薃螈袇肇蚆羃膅肆莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膄艿薁蚂肀芈蚃袇羆芇莃蚀袂芆薅袆袈芅蚇螈膇芅莇羄肃芄葿螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆腿蒃螂虿肅蒂蒁羅羁肈薃螈袇肇蚆羃膅肆莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膄艿薁蚂肀芈蚃袇羆芇莃蚀袂芆薅袆袈芅蚇螈膇芅莇羄肃芄葿螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆腿蒃螂虿肅蒂蒁羅羁肈薃螈袇肇蚆羃膅肆莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膄艿薁蚂肀芈蚃袇羆芇莃蚀袂芆薅袆袈芅蚇螈膇芅莇羄肃芄葿螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆腿蒃螂虿肅蒂蒁羅羁肈薃螈袇肇蚆羃膅肆莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膄艿薁蚂肀芈蚃袇羆芇莃蚀袂芆薅袆袈芅蚇螈膇芅莇羄肃芄葿螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆腿蒃螂虿肅蒂蒁羅羁肈薃螈袇肇蚆羃膅肆莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膄艿薁蚂肀芈蚃袇羆芇莃蚀袂芆薅袆袈芅蚇螈膇芅莇羄肃芄葿螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆腿蒃螂虿肅蒂蒁羅羁肈薃螈袇肇蚆羃膅肆莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膄艿薁蚂肀芈蚃袇羆芇莃蚀袂芆薅袆袈芅蚇螈膇芅莇羄肃芄葿螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆腿蒃螂虿肅蒂蒁羅羁肈薃螈袇肇蚆羃膅肆莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膄艿薁蚂肀芈蚃袇羆芇莃蚀袂芆薅袆袈芅蚇螈膇芅莇羄肃芄葿螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆腿蒃螂虿肅蒂蒁羅羁肈薃螈袇肇蚆羃膅肆莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膄艿薁蚂肀芈蚃袇羆芇莃蚀袂芆薅袆袈芅蚇螈膇芅莇羄肃芄葿螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆腿蒃螂虿肅蒂蒁羅羁肈薃螈袇肇蚆羃膅肆莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膄艿薁蚂肀芈蚃袇羆芇莃蚀袂芆薅袆袈芅蚇螈膇芅莇羄肃芄葿螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆腿蒃螂虿肅蒂蒁羅羁肈薃螈袇肇蚆羃膅肆莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膄艿薁蚂肀芈蚃袇羆芇莃蚀袂芆薅袆袈芅蚇螈膇芅莇羄肃芄葿螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆腿蒃螂虿肅蒂蒁羅羁肈薃螈袇肇蚆羃膅肆莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膄艿薁蚂肀芈蚃袇羆芇莃蚀袂芆薅袆袈芅蚇螈膇芅莇羄肃芄葿螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆腿蒃螂虿肅蒂蒁羅羁肈薃螈袇肇蚆羃膅肆莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膄艿薁蚂肀芈蚃袇羆芇莃蚀袂芆薅袆袈芅蚇螈膇芅莇羄肃芄葿螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆腿蒃螂虿肅蒂蒁羅羁肈薃螈袇肇蚆羃膅肆莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膄艿薁蚂肀芈蚃袇羆芇莃蚀袂芆薅袆袈芅蚇螈膇芅莇羄肃芄葿螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆腿蒃螂虿肅蒂蒁羅羁肈薃螈袇肇蚆羃膅肆莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膄艿薁蚂肀芈蚃袇羆芇莃蚀袂芆薅袆袈芅蚇螈膇芅莇羄肃芄葿螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆腿蒃螂虿肅蒂蒁羅羁肈薃螈袇肇蚆羃膅肆莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膄艿薁蚂肀芈蚃袇羆芇莃蚀袂芆薅袆袈芅蚇螈膇芅莇羄肃芄葿螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆腿蒃螂虿肅蒂蒁羅羁肈薃螈袇肇蚆羃膅肆莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膄艿薁蚂肀芈蚃袇羆芇莃蚀袂芆薅袆袈芅蚇螈膇芅莇羄肃芄葿螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆腿蒃螂虿肅蒂蒁羅羁肈薃螈袇肇蚆羃膅肆莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膄艿薁蚂肀芈蚃袇羆芇莃蚀袂芆薅袆袈芅蚇螈膇芅莇羄肃芄葿螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆腿蒃螂虿肅蒂蒁羅羁肈薃螈袇肇蚆羃膅肆莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膄艿薁蚂肀芈蚃袇羆芇莃蚀袂芆薅袆袈芅蚇螈膇芅莇羄肃芄葿螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆腿蒃螂虿肅蒂蒁羅羁肈薃螈袇肇蚆羃膅肆莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膄艿薁蚂肀芈蚃袇羆芇莃蚀袂芆薅袆袈芅蚇螈膇芅莇羄肃芄葿螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆腿蒃螂虿肅蒂蒁羅羁肈薃螈袇肇蚆羃膅肆莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膄艿薁蚂肀芈蚃袇羆芇莃蚀袂芆薅袆袈芅蚇螈膇芅莇羄肃芄葿螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆腿蒃螂虿肅蒂蒁羅羁肈薃螈袇肇蚆羃膅肆莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膄艿薁蚂肀芈蚃袇羆芇莃蚀袂芆薅袆袈芅蚇螈膇芅莇羄肃芄葿螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆腿蒃螂虿肅蒂蒁羅羁肈薃螈袇肇蚆羃膅肆莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膄艿薁蚂肀芈蚃袇羆芇莃蚀袂芆薅袆袈芅蚇螈膇芅莇羄肃芄葿螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆腿蒃螂虿肅蒂蒁羅羁肈薃螈袇肇蚆羃膅肆莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膄艿薁蚂肀芈蚃袇羆芇莃蚀袂芆薅袆袈芅蚇螈膇芅莇羄肃芄葿螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆腿蒃螂虿肅蒂蒁羅羁肈薃螈袇肇蚆羃膅肆莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膄艿薁蚂肀芈蚃袇羆芇莃蚀袂芆薅袆袈芅蚇螈膇芅莇羄肃芄葿螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆腿蒃螂虿肅蒂蒁羅羁肈薃螈袇肇蚆羃膅肆莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膄艿薁蚂肀芈蚃袇羆芇莃蚀袂芆薅袆袈芅蚇螈膇芅莇羄肃芄葿螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆腿蒃螂虿肅蒂蒁羅羁肈薃螈袇肇蚆羃膅肆莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膄艿薁蚂肀芈蚃袇羆芇莃蚀袂芆薅袆袈芅蚇螈膇芅莇羄肃芄葿螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆腿蒃螂虿肅蒂蒁羅羁肈薃螈袇肇蚆羃膅肆莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膄艿薁蚂肀芈蚃袇羆芇莃蚀袂芆薅袆袈芅蚇螈膇芅莇羄肃芄葿螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆腿蒃螂虿肅蒂蒁羅羁肈薃螈袇肇蚆羃膅肆莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膄艿薁蚂肀芈蚃袇羆芇莃蚀袂芆薅袆袈芅蚇螈膇芅莇羄肃芄葿螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆腿蒃螂虿肅蒂蒁羅羁肈薃螈袇肇蚆羃膅肆莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膄艿薁蚂肀芈蚃袇羆芇莃蚀袂芆薅袆袈芅蚇螈膇芅莇羄肃芄葿螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆腿蒃螂虿肅蒂蒁羅羁肈薃螈袇肇蚆羃膅肆莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膄艿薁蚂肀芈蚃袇羆芇莃蚀袂芆薅袆袈芅蚇螈膇芅莇羄肃芄葿螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆腿蒃螂虿肅蒂蒁羅羁肈薃螈袇肇蚆羃膅肆莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膄艿薁蚂肀芈蚃袇羆芇莃蚀袂芆薅袆袈芅蚇螈膇芅莇羄肃芄葿螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆腿蒃螂虿肅蒂蒁羅羁肈薃螈袇肇蚆羃膅肆莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膄艿薁蚂肀芈蚃袇羆芇莃蚀袂芆薅袆袈芅蚇螈膇芅莇羄肃芄葿螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆腿蒃螂虿肅蒂蒁羅羁肈薃螈袇肇蚆羃膅肆莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膄艿薁蚂肀芈蚃袇羆芇莃蚀袂芆薅袆袈芅蚇螈膇芅莇羄肃芄葿螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆腿蒃螂虿肅蒂蒁羅羁肈薃螈袇肇蚆羃膅肆莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膄艿薁蚂肀芈蚃袇羆芇莃蚀袂芆薅袆袈芅蚇螈膇芅莇羄肃芄葿螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆腿蒃螂虿肅蒂蒁羅羁肈薃螈袇肇蚆羃膅肆莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膄艿薁蚂肀芈蚃袇羆芇莃蚀袂芆薅袆袈芅蚇螈膇芅莇羄肃芄葿螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆腿蒃螂虿肅蒂蒁羅羁肈薃螈袇肇蚆羃膅肆莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膄艿薁蚂肀芈蚃袇羆芇莃蚀袂芆薅袆袈芅蚇螈膇芅莇羄肃芄葿螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆腿蒃螂虿肅蒂蒁羅羁肈薃螈袇肇蚆羃膅肆莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膄艿薁蚂肀芈蚃袇羆芇莃蚀袂芆薅袆袈芅蚇螈膇芅莇羄肃芄葿螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆腿蒃螂虿肅蒂蒁羅羁肈薃螈袇肇蚆羃膅肆莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膄艿薁蚂肀芈蚃袇羆芇莃蚀袂芆薅袆袈芅蚇螈膇芅莇羄肃芄葿螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆腿蒃螂虿肅蒂蒁羅羁肈薃螈袇肇蚆羃膅肆莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膄艿薁蚂肀芈蚃袇羆芇莃蚀袂芆薅袆袈芅蚇螈膇芅莇羄肃芄葿螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆腿蒃螂虿肅蒂蒁羅羁肈薃螈袇肇蚆羃膅肆莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膄艿薁蚂肀芈蚃袇羆芇莃蚀袂芆薅袆袈芅蚇螈膇芅莇羄肃芄葿螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆腿蒃螂虿肅蒂蒁羅羁肈薃螈袇肇蚆羃膅肆莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膄艿薁蚂肀芈蚃袇羆芇莃蚀袂芆薅袆袈芅蚇螈膇芅莇羄肃芄葿螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆腿蒃螂虿肅蒂蒁羅羁肈薃螈袇肇蚆羃膅肆莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膄艿薁蚂肀芈蚃袇羆芇莃蚀袂芆薅袆袈芅蚇螈膇芅莇羄肃芄葿螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆腿蒃螂虿肅蒂蒁羅羁肈薃螈袇肇蚆羃膅肆莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膄艿薁蚂肀芈蚃袇羆芇莃蚀袂芆薅袆袈芅蚇螈膇芅莇羄肃芄葿螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆腿蒃螂虿肅蒂蒁羅羁肈薃螈袇肇蚆羃膅肆莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膄艿薁蚂肀芈蚃袇羆芇莃蚀袂芆薅袆袈芅蚇螈膇芅莇羄肃芄葿螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆腿蒃螂虿肅蒂蒁羅羁肈薃螈袇肇蚆羃膅肆莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膄艿薁蚂肀芈蚃袇羆芇莃蚀袂芆薅袆袈芅蚇螈膇芅莇羄肃芄葿螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆腿蒃螂虿肅蒂蒁羅羁肈薃螈袇肇蚆羃膅肆莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膄艿薁蚂肀芈蚃袇羆芇莃蚀袂芆薅袆袈芅蚇螈膇芅莇羄肃芄葿螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆腿蒃螂虿肅蒂蒁羅羁肈薃螈袇肇蚆羃膅肆莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膄艿薁蚂肀芈蚃袇羆芇莃蚀袂芆薅袆袈芅蚇螈膇芅莇羄肃芄葿螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆腿蒃螂虿肅蒂蒁羅羁肈薃螈袇肇蚆羃膅肆莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膄艿薁蚂肀芈蚃袇羆芇莃蚀袂芆薅袆袈芅蚇螈膇芅莇羄肃芄葿螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆腿蒃螂虿肅蒂蒁羅羁肈薃螈袇肇蚆羃膅肆莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膄艿薁蚂肀芈蚃袇羆芇莃蚀袂芆薅袆袈芅蚇螈膇芅莇羄肃芄葿螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆腿蒃螂虿肅蒂蒁羅羁肈薃螈袇肇蚆羃膅肆莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膄艿薁蚂肀芈蚃袇羆芇莃蚀袂芆薅袆袈芅蚇螈膇芅莇羄肃芄葿螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆腿蒃螂虿肅蒂蒁羅羁肈薃螈袇肇蚆羃膅肆莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膄艿薁蚂肀芈蚃袇羆芇莃蚀袂芆薅袆袈芅蚇螈膇芅莇羄肃芄葿螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆腿蒃螂虿肅蒂蒁羅羁肈薃螈袇肇蚆羃膅肆莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膄艿薁蚂肀芈蚃袇羆芇莃蚀袂芆薅袆袈芅蚇螈膇芅莇羄肃芄葿螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆腿蒃螂虿肅蒂蒁羅羁肈薃螈袇肇蚆羃膅肆莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膄艿薁蚂肀芈蚃袇羆芇莃蚀袂芆薅袆袈芅蚇螈膇芅莇羄肃芄葿螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆腿蒃螂虿肅蒂蒁羅羁肈薃螈袇肇蚆羃膅肆莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膄艿薁蚂肀芈蚃袇羆芇莃蚀袂芆薅袆袈芅蚇螈膇芅莇羄肃芄葿螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆腿蒃螂虿肅蒂蒁羅羁肈薃螈袇肇蚆羃膅肆莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膄艿薁蚂肀芈蚃袇羆芇莃蚀袂芆薅袆袈芅蚇螈膇芅莇羄肃芄葿螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆腿蒃螂虿肅蒂蒁羅羁肈薃螈袇肇蚆羃膅肆莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膄艿薁蚂肀芈蚃袇羆芇莃蚀袂芆薅袆袈芅蚇螈膇芅莇羄肃芄葿螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆腿蒃螂虿肅蒂蒁羅羁肈薃螈袇肇蚆羃膅肆莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膄艿薁蚂肀芈蚃袇羆芇莃蚀袂芆薅袆袈芅蚇螈膇芅莇羄肃芄葿螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆腿蒃螂虿肅蒂蒁羅羁肈薃螈袇肇蚆羃膅肆莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膄艿薁蚂肀芈蚃袇羆芇莃蚀袂芆薅袆袈芅蚇螈膇芅莇羄肃芄葿螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆腿蒃螂虿肅蒂蒁羅羁肈薃螈袇肇蚆羃膅肆莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膄艿薁蚂肀芈蚃袇羆芇莃蚀袂芆薅袆袈芅蚇螈膇芅莇羄肃芄葿螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆腿蒃螂虿肅蒂蒁羅羁肈薃螈袇肇蚆羃膅肆莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膄艿薁蚂肀芈蚃袇羆芇莃蚀袂芆薅袆袈芅蚇螈膇芅莇羄肃芄葿螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈 Oracle存储过程实例2009-08-07 23:10:45| 分类: Oracle | 标签:|字号大中小 订阅Java代码1 create or replace procedure GetRecords(name_out out varchar2,age_in in varchar2) as 2 begin 3 select NAME into name_out from test where AGE = age_in; 4 end; 5 6 create or replace procedure insertRecord(UserID in varchar2, UserName in varchar2,UserAge in varchar2) is 7 begin 8 insert into test values (UserID, UserName, UserAge); 9 end; 首先,在Oracle中创建了一个名为TEST_SEQ的Sequence对象,SQL语句如下:Java代码10 create sequence TEST_SEQ 11 minvalue 100 12 maxvalue 999 13 start with 102 14 increment by 1 15 nocache; 语法应该是比较易懂的,最小最大值分别用minvalue,maxvalue表示,初始值是102(这个数字是动态变化的,我创建的时候设的是100,后因插入了2条数据后就自动增加了2),increment当然就是步长了。在PL/SQL中可以用test_seq.nextval访问下一个序列号,用test_seq.currval访问当前的序列号。 定义完了Sequence,接下来就是创建一个存储过程InsertRecordWithSequence:-这次我修改了test表的定义,和前面的示例不同。其中,UserID是PK。Java代码16 create or replace procedure InsertRecordWithSequence(UserID out number,UserName in varchar2,UserAge in number) 17 is 18 begin insert into test(id, name, age) -插入一条记录,PK值从Sequece获取 19 values(test_seq.nextval, UserName, UserAge); 20 /*返回PK值。注意Dual表的用法*/ 21 select test_seq.currval into UserID from dual; 22 end InsertRecordWithSequence; 为了让存储过程返回结果集,必须定义一个游标变量作为输出参数。这和Sql Server中有着很大的不同!并且还要用到Oracle中“包”(Package)的概念,似乎有点繁琐,但熟悉后也会觉得很方便。关于“包”的概念,有很多内容可以参考,在此就不赘述了。首先,我创建了一个名为TestPackage的包,包头是这么定义的:Java代码23 create or replace package TestPackage is 24 type mycursor is ref cursor; - 定义游标变量 25 procedure GetRecords(ret_cursor out mycursor); - 定义过程,用游标变量作为返回参数 26 end TestPackage; 27 包体是这么定义的: 28 create or replace package body TestPackage is 29 /*过程体*/ 30 procedure GetRecords(ret_cursor out mycursor) as 31 begin 32 open ret_cursor for select * from test; 33 end GetRecords; 34 end TestPackage; 小结: 包是Oracle特有的概念,Sql Server中找不到相匹配的东西。在我看来,包有点像VC+的类,包头就是.h文件,包体就是.cpp文件。包头只负责定义,包体则负责具体实现。如果包返回多个游标,则DataReader会按照您向参数集合中添加它们的顺序来访问这些游标,而不是按照它们在过程中出现的顺序来访问。可使用DataReader的NextResult()方法前进到下一个游标。Java代码35 create or replace package TestPackage is 36 type mycursor is ref cursor; 37 procedure UpdateRecords(id_in in number,newName in varchar2,newAge in number); 38 procedure SelectRecords(ret_cursor out mycursor); 39 procedure DeleteRecords(id_in in number); 40 procedure InsertRecords(name_in in varchar2, age_in in number); 41 end TestPackage; 包体如下:Java代码42 create or replace package body TestPackage is 43 procedure UpdateRecords(id_in in number, newName in varchar2, newAge in number) as 44 begin 45 update test set age = newAge, name = newName where id = id_in; 46 end UpdateRecords; 47 48 procedure SelectRecords(ret_cursor out mycursor) as 49 begin 50 open ret_cursor for select * from test; 51 end SelectRecords; 52 53 procedure DeleteRecords(id_in in number) as 54 begin 55 delete from test where id = id_in; 56 end DeleteRecords; 57 58 procedure InsertRecords(name_in in varchar2, age_in in number) as 59 begin 60 insert into test values (test_seq.nextval, name_in, age_in); 61 -test_seq是一个已建的Sequence对象,请参照前面的示例 62 end InsertRecords; 63 end TestPackage; TestPackage.SelectRecords-oracle 存储过程的基本语法1.基本结构CREATE OR REPLACE PROCEDURE 存储过程名字( 参数1 IN NUMBER, 参数2 IN NUMBER) IS变量1 INTEGER :=0;变量2 DATE;BEGINEND 存储过程名字2.SELECT INTO STATEMENT 将select查询的结果存入到变量中,可以同时将多个列存储多个变量中,必须有一条 记录,否则抛出异常(如果没有记录抛出NO_DATA_FOUND) 例子: BEGIN SELECT col1,col2 into 变量1,变量2 FROM typestruct where xxx; EXCEPTION WHEN NO_DATA_FOUND THEN xxxx; END; .3.IF 判断 IF V_TEST=1 THEN BEGIN do something END; END IF;4.while 循环 WHILE V_TEST=1 LOOP BEGINXXXX END; END LOOP;5.变量赋值 V_TEST := 123;6.用for in 使用cursor . IS CURSOR cur IS SELECT * FROM xxx; BEGINFOR cur_result in cur LOOP BEGIN V_SUM :=cur_result.列名1+cur_result.列名2 END;END LOOP; END;7.带参数的cursor CURSOR C_USER(C_ID NUMBER) IS SELECT NAME FROM USER WHERE TYPEID=C_ID; OPEN C_USER(变量值); LOOPFETCH C_USER INTO V_NAME;EXIT FETCH C_USER%NOTFOUND; do something END LOOP; CLOSE C_USER;8.用pl/sql developer debug 连接数据库后建立一个Test WINDOW 在窗口输入调用SP的代码,F9开始debug,CTRL+N单步调试-oracle存储过程一例By 凌云志 发表于 2007-4-18 17:01:00 最近换了一个项目组,晕,要写oracle的存储过程,幸亏写过一些db2的存储过程,尚且有些经验,不过oralce的pl/sql不大一样,花费了一下午的时间写了一个出来,测试编译通过了,是为记,以备以后查阅。Java代码64 CREATE OR REPLACE PACKAGE PY_PCKG_REFUND2 AS 65 - 66 - Oracle 包 67 -国航支付平台VISA退款 68 - 游标定义: 69 - 70 - 存储过程定义: 71 - PY_WEBREFUND_VISA_PREPARE : VISA退款准备 72 - 最后修改人:dougq 73 - 最后修改日期:2007.4.17 74 - 75 76 PROCEDURE PY_WEBREFUND_VISA_PREPARE ( 77 in_serialNoStr IN VARCHAR2, -用|隔开的一组网上退款申请流水号 78 in_session_operatorid IN VARCHAR2, -业务操作员 79 out_return_code OUT VARCHAR2, -存储过程返回码 80 out_visaInfoStr OUT VARCHAR2 81 ); 82 83 END PY_PCKG_REFUND2; 84 / 85 86 87 CREATE OR REPLACE PACKAGE BODY PY_PCKG_REFUND2 AS 88 89 PROCEDURE PY_WEBREFUND_VISA_PREPARE ( 90 in_serialNoStr IN VARCHAR2, -用|隔开的一组网上退款申请流水号 91 in_session_operatorid IN VARCHAR2,-业务操作员 92 out_return_code OUT VARCHAR2, -存储过程返回码 93 out_visaInfoStr OUT VARCHAR2 94 ) IS 95 -变量声明 96 v_serialno VARCHAR2(20);-网上退款申请流水号 97 v_refserialno VARCHAR2(20);-支付交易流水号 98 v_tobankOrderNo VARCHAR2(30);-上送银行的订单号 99 v_orderDate VARCHAR2(8);-订单日期 100 v_businessType VARCHAR2(10);-业务类型 101 v_currType VARCHAR2(3);-订单类型(ET电子机票) 102 v_merno VARCHAR2(15);-商户号 103 v_orderNo VARCHAR2(20);-商户订单号 104 v_orderState VARCHAR2(2); 105 v_refAmount NUMBER(15,2);-退款金额 106 v_tranType VARCHAR(2);-交易类型 107 v_bank VARCHAR2(10);-收单银行 108 v_date VARCHAR2 (8);-交易日期 109 v_time VARCHAR2 (6);-交易时间 110 v_datetime VARCHAR2 (14);-获取的系统时间 111 v_index_start NUMBER; 112 v_index_end NUMBER; 113 v_i NUMBER; 114 BEGIN 115 - 初始化参数 116 out_visaInfoStr := ; 117 v_i := 1; 118 v_index_start := 1; 119 v_index_end := INSTR(in_serialNoStr,|,1,1); 120 v_refserialno := SUBSTR(in_serialNoStr, v_index_start, v_index_end-1); 121 v_datetime := TO_CHAR (SYSDATE, yyyymmddhh24miss); 122 v_date := SUBSTR (v_datetime, 1, 8); 123 v_time := SUBSTR (v_datetime, 9, 14); 124 125 -从退款请求表中查询定单信息(商户号、商户订单号、退款金额) 126 WHILE v_index_end 0 LOOP 127 SELECT 128 WEBR_MERNO, 129 WEBR_ORDERNO, 130 WEBR_AMOUNT, 131 WEBR_SERIALNO, 132 WEBR_REFUNDTYPE 133 INTO 134 v_merno, 135 v_orderNo, 136 v_refAmount, 137 v_serialno, 138 v_tranType 139 FROM 140 PY_WEB_REFUND 141 WHERE 142 WEBR_REFREQNO = v_refserialno; 143 144 -将查询到的数据组成串 145 out_visaInfoStr := out_visaInfoStr | v_merno | | v_orderNo | | v_refAmount + |; 146 147 -为下次循环做数据准备 148 v_i := v_i + 1; 149 v_index_start := v_index_end + 1; 150 v_index_end := INSTR(in_serialNoStr,|,1,v_i); 151 IF v_index_end 0 THEN 152 v_refserialno := SUBSTR(in_serialNoStr, v_index_start, v_index_end - 1); 153 END IF; 154 155 -根据原支付流水号在流水表中查询该订单的信息,包括原上送银行或第三方的订单号:WTRN_TOBANKORDERNO 156 SELECT 157 WTRN_TOBANKORDERNO, 158 WTRN_ORDERNO, 159 WTRN_ORDERDATE, 160 WTRN_BUSINESSTYPE, 161 WTRN_ACCPBANK, 162 WTRN_TRANCURRTYPE 163 INTO 164 v_tobankOrderNo, 165 v_orderNo, 166 v_orderDate, 167 v_businessType, 168 v_bank, 169 v_currType 170 FROM PY_WEBPAY_VIEW 171 WHERE WTRN_SERIALNO = v_serialno; 172 173 -记录流水表(退款) 174 INSERT INTO PY_WEBPAY_TRAN( 175 WTRN_SERIALNO, 176 WTRN_TRANTYPE, 177 WTRN_ORIGSERIALNO, 178 WTRN_ORDERNO, 179 WTRN_ORDERDATE, 180 WTRN_BUSINESSTYPE, 181 WTRN_TRANCURRTYPE, 182 WTRN_TRANAMOUNT, 183 WTRN_ACCPBANK, 184 WTRN_TRANSTATE, 185 WTRN_TRANTIME, 186 WTRN_TRANDATE, 187 WTRN_MERNO, 188 WTRN_TOBANKORDERNO 189 )VALUES( 190 v_refserialno, -和申请表的流水号相同,作为参数传人 191 v_tranType, 192 v_serialno, -原交易流水号,查询退款申请表得到 193 v_orderNo, 194 v_orderDate, 195 v_businessType, 196 v_currType, 197 v_refAmount, 198 v_bank, 199 1, 200 v_time, 201 v_date, 202 v_merno, 203 v_tobankOrderNo -上送银行的订单号,查询流水表得到 204 ); 205 206 -更新网上退款申请表 207 UPDATE PY_WEB_REFUND 208 SET 209 WEBR_IFDISPOSED = 1, 210 WEBR_DISPOSEDOPR = in_session_operatorid, 211 WEBR_DISPOSEDDATE = v_datetime 212 WHERE 213 WEBR_REFREQNO = v_refserialno; 214 215 -更新定单表 216 IF v_tranType = 2 THEN 217 v_orderState := 7; 218 ELSE 219 v_orderState := 10; 220 END IF; 221 222 UPDATE PY_ORDER 223 SET 224 ORD_ORDERSTATE = v_orderState 225 WHERE 226 OR

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论