`
huangyongxing310
  • 浏览: 491944 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

执行存储过程测试

 
阅读更多

--执行存储过程创建
if (exists (select * from sys.objects where name = 'p_areaChannelDistributionReport'))
    drop proc p_areaChannelDistributionReport
go

create proc p_areaChannelDistributionReport
as
BEGIN
    select COUNT(*) AS num from sa_agreement;

End

--调用、执行存储过程
exec p_areaChannelDistributionReport;





--循环使用
DECLARE @areaId  as varchar(40)

DECLARE cur_area CURSOR FOR 
SELECT nid AS areaId from t_area_info with (nolock) WHERE parentid=1

OPEN cur_area


fetch next from cur_area into @areaId  --将游标向下移1行,获取的数据放入之前定义的变量@id,@name中
while @@fetch_status=0           --判断是否成功获取数据
begin

Print @areaId


fetch next from cur_area into @areaId  --将游标向下移1行
end

close cur_area                   --关闭游标
deallocate cur_area





--定义变量和设置值
DECLARE @areaId  as varchar(40)

Declare @yearString as varchar(6)
Set @yearString ='2021'



--增删改操作


Begin
Delete [areaChannelDistributionReport]
where
Not Exists (Select B.toChannel From #temp_areaChanneltargetValue AS B
WHere  B.toChannel = [areaChannelDistributionReport].toChannel
AND B.channelId = [areaChannelDistributionReport].channelId
AND B.areaId = [areaChannelDistributionReport].areaId
AND B.channelType = [areaChannelDistributionReport].channelType
AND B.khId = [areaChannelDistributionReport].khId
AND B.yearString = [areaChannelDistributionReport].yearString
)

end




Begin
Update [areaChannelDistributionReport]
Set [khId] = B.[khId]
,[khName] = B.[khName]
,[channelId] = B.[channelId]
,[areaId] = B.[areaId]
,[areaName] = B.[areaName]
,[regionId] = B.[regionId]
,[regionName] = B.[regionName]
,[channelType] = B.[channelType]
,[channelTypeName] = B.[channelTypeName]
,[toChannel] = B.[toChannel]
,[targetT1] = B.[targetT1]
,[targetT2] = B.[targetT2]
,[targetT3] = B.[targetT3]
,[targetT4] =   B.[targetT4]
,[targetT5] =    B.[targetT5]
,[targetT6] = B.[targetT6]
,[targetN1] = B.[targetN1]
,[targetN2] = B.[targetN2]
,[targetN3] = B.[targetN3]
,[targetN4] = B.[targetN4]
,[targetN5] = B.[targetN5]
,[yearString] = B.[yearString]
,[targetT31] = B.[targetT31]
,[targetT32] = B.[targetT32]
,[targetT33] = B.[targetT33]
,[targetT41] = B.[targetT41]
,[targetT42] = B.[targetT42]
,[targetT43] = B.[targetT43]
,[targetT44] = B.[targetT44]
,[confirm] = B.[confirm]

From #temp_areaChanneltargetValue AS B
WHere  B.toChannel = [areaChannelDistributionReport].toChannel
AND B.channelId = [areaChannelDistributionReport].channelId
AND B.areaId = [areaChannelDistributionReport].areaId
AND B.channelType = [areaChannelDistributionReport].channelType
AND B.khId = [areaChannelDistributionReport].khId
AND B.yearString = [areaChannelDistributionReport].yearString
end



Begin

insert into [areaChannelDistributionReport] (
khId ,
khName,
channelId,
areaId,
areaName,
regionId,
regionName,
channelType,
channelTypeName,
channelName,
toChannel,
targetT1,
targetT2,
targetT3,
targetT4,
targetT5,
targetT6,
targetN1,
targetN2,
targetN3,
targetN4,
targetN5 ,
yearString ,
targetT31,
targetT32,
targetT33,
targetT41,
targetT42,
  targetT43,
targetT44,
confirm
  )
Select 
khId ,
khName,
channelId,
areaId,
areaName,
regionId,
regionName,
channelType,
channelTypeName,
channelName,
toChannel,
targetT1,
targetT2,
targetT3,
targetT4,
targetT5,
targetT6,
targetN1,
targetN2,
targetN3,
targetN4,
targetN5 ,
yearString,
targetT31,
targetT32,
targetT33,
targetT41,
targetT42,
  targetT43,
targetT44,
confirm
From #temp_areaChanneltargetValue AS B
Where not exists (Select toChannel From [areaChannelDistributionReport]
WHere  B.toChannel = [areaChannelDistributionReport].toChannel
AND B.channelId = [areaChannelDistributionReport].channelId
AND B.areaId = [areaChannelDistributionReport].areaId
AND B.channelType = [areaChannelDistributionReport].channelType
AND B.khId = [areaChannelDistributionReport].khId
AND B.yearString = [areaChannelDistributionReport].yearString
)


end







分享到:
评论

相关推荐

    GBase8s 存储过程和触发器测试方法

    3. 执行测试:调用存储过程或触发DML操作以触发触发器,观察和验证结果是否符合预期。 4. 错误处理:测试各种可能出现的错误情况,如输入无效、无数据匹配、资源冲突等,确保异常处理机制能正确工作。 5. 事务管理:...

    plsql创建存储过程并创建job定时任务执行-详细笔记文档总结

    plsql创建存储过程并创建job定时任务执行详细笔记文档总结 在 Oracle 中,plsql 是一种强大的编程语言,可以用来创建存储过程和定时任务执行。在本文中,我们将详细介绍如何使用 plsql 创建存储过程并创建 job 定时...

    ORACLE的存储过程的异步调用

    ORACLE 存储过程的异步调用 本文讨论了 ORACLE 存储过程的异步调用方法,旨在解决...为了测试异步调用存储过程的方法,需要建立测试环境,包括创建模拟大业务处理存储过程、读取管道动态了解处理状态的存储过程等。

    存储过程测试心得总结

    本文将基于“存储过程测试心得总结”这一主题,深入探讨存储过程的相关知识,以及在实际操作中进行测试的经验与技巧。 首先,我们来理解什么是存储过程。存储过程是预编译的SQL语句集合,存储在数据库服务器中,...

    存储过程自动化测试(论文)

    文章强调了数据库存储过程测试的复杂性以及现有的数据库产品提供的工具的局限性,如它们无法完成批量和重复测试,且测试结果的直观性不强。因此,本文提出了一种基于JUnit框架的自动测试框架实施方案,它采用XML来...

    pb源码编写执行oracle存储过程的程序

    标题 "pb源码编写执行oracle存储过程的程序" 涉及到的主要知识点是使用PowerBuilder(pb)作为开发工具,来与Oracle数据库交互并执行存储过程。在Oracle数据库中,存储过程是一组预编译的SQL语句和PL/SQL代码,可以...

    VB 测试存储过程

    4. **执行存储过程**: 调用`Execute`方法执行存储过程,如果有结果集,可以通过`Recordset`对象获取: ```vb Dim rs As New ADODB.Recordset rs.Open cmd ``` 5. **处理结果**: 可以遍历`Recordset`对象来处理返回...

    hibernate调用存储过程的方法调用

    - **执行存储过程**:调用`executeUpdate`或`list`方法执行存储过程。对于无返回值的存储过程,通常使用`executeUpdate`;如果有结果集,可以使用`list`获取并处理结果。 - **处理结果**:如果存储过程返回结果,...

    vs中断点测试sqlserver的存储过程

    在IT领域,特别是软件开发与数据库管理中,对SQL Server的存储过程进行中断点测试是一项重要的技能,它有助于开发者深入理解代码执行流程,及时发现并修复潜在错误。下面,我们将详细探讨如何在Visual Studio(以下...

    Python使用cx_Oracle调用Oracle存储过程的方法示例

    本文实例讲述了Python使用cx_Oracle调用Oracle存储过程的方法。分享给大家供大家参考,具体如下: 这里主要测试在Python中通过cx_Oracle调用PL/SQL。 首先,在数据库端创建简单的存储过程。 create or replace ...

    ibatIS调用存储过程

    5. **处理结果**:存储过程执行后,可能会有多个结果集返回。ibatIS会自动处理这些结果,将其转换为Java对象。如果存储过程没有返回值,结果通常是一个空的List。 6. **异常处理**:在调用存储过程时,可能出现SQL...

    VC做的小东西,测试oracle存储过程

    4. 执行存储过程:通过`SQLExecute`(ODBC)或`OCIDescrpare`和`OCIParse`(OCI)等函数执行存储过程。 5. 处理结果:如果存储过程有返回值或输出参数,需要读取这些结果。 6. 关闭连接:完成操作后,使用`SQL...

    VB6.0 调用存储过程的例子(方法一)

    2. **命令对象**:用于执行存储过程或SQL语句。 3. **参数对象**:用于传递给存储过程的参数。 4. **记录集对象**:用于接收存储过程返回的结果集。 #### 二、详细步骤 ##### 1. 创建连接对象 首先,创建一个新的...

    NHibernate调用存储过程全集,值.

    除了映射文件,还可以在运行时动态创建SQLQuery对象来执行存储过程,这适用于那些不需要持久化到实体类的结果。例如: ```csharp string sql = "EXEC usp_CustomProcedure :param1"; SQLQuery query = session....

    Java调用数据库存储过程[mysql测试通过]

    Java代码创建了一个CallableStatement对象,设置参数并执行存储过程,然后打印出返回的结果。 以上就是关于Java调用MySQL数据库存储过程的基础知识和实践操作,实际应用中可能需要考虑异常处理、连接池管理、多参数...

    批量增加测试数据----存储过程

    由于存储过程在数据库服务器上执行,因此可以显著提高应用程序的性能和安全性。 #### 示例存储过程解析 在提供的内容中,展示了一个名为`insertc4`的存储过程,其功能是在指定的表`tabalename.WS_KEHUXINXI`中批量...

    C# 导出存储过程 支持模糊查询

    在C#中,可以使用SqlConnection类来建立与SQL Server的连接,使用SqlCommand类来执行SQL语句,如`sp_helptext`或`sys.procedures`等系统存储过程来获取存储过程的信息。例如,要获取所有存储过程的名称,可以使用...

    存储过程参数查看器存储过程助手

    - 在数据库设计阶段,存储过程助手能帮助创建和测试过程逻辑。 - 在开发阶段,它可以作为调试工具,确保存储过程按预期工作。 - 在维护阶段,查看器和助手能帮助DBA理解现有过程,进行修改或优化,以适应业务需求...

    PLSQL中存储过程的建立,导出,导入,使用

    1. **执行存储过程**:选中需要执行的存储过程,点击右键选择“测试”或“运行”选项。 2. **处理多个存储过程**:若需要执行多个存储过程,可以在同一个会话中依次执行。 3. **处理权限问题**:如果遇到权限不足的...

    oracle定时执行存储过程.pdf

    ### Oracle定时执行存储过程知识点详解 #### 一、概述 在Oracle数据库中,定时执行存储过程是一项非常实用的功能,尤其适用于需要定期执行的任务,比如数据备份、数据清理、统计汇总等场景。通过设置定时任务,可以...

Global site tag (gtag.js) - Google Analytics