对于使用SQLScript 的存储过程,SAP HANA提供了对存储过程的调试功能,即debug功能。当对一个存储过程进行调试时,这个存储过程中的代码将被顺序执行,而并不是按照实际的可能情况并行执行。因此在对存储过程进行调试时,只是为了验证逻辑的正确性,查看执行过程中变量的值,而并不能保证调试中的性能。

相关权限

要对一个存储过程进行调试的用户必须具有相关的权限,才可以进行调试。所以必须先赋予相应的权限给此用户。

对于进行调试 的用户,首先要有对此存储过程的CALL的权限,以及对存储过程所访问的对象(table,view)的SELECT的权限。然后,要有对此存储过程的DEBUG的权限。

在Object Privileges下选择相应的procedure,勾选DEBUG的权限。或者选择相应schema下DEBUG的权限,则可以对此schema下所有procedure或者calculation view 的DEBUG的权限。

同样,也可以使用SQL语句进行授权。

  1. GRANT DEBUG ON <procedure_name>  TO <user_name>;
  2. GRANT DEBUG ON SCHEMA <schema_name> TO <user_name>;

调试design-time procedure

对于在一个共享的project中的存储过程,你可以进行调试和分析。即对workspace中已经被提交和激活的一个.hdbprocedure或者.procedure文件进行调试。这是从HANA SPS6版本开始提出的功能。

这样建立存储过程是创建相关的.hdbprocedure或者.procedure文件。这样的存储过程,实现方式和在catalog中建立的存储过程相同,可以使用catalog中的表格和视图,但必须提前赋予相关的权限。同样,当这个存储过程被激活(activate)后,会在指定的schema下,创建对应的存储过程,其命名方式如下<project_name>.<folder_name>::<procedure_name>。

调试catalog procedure

同样,你也可以调试和分析catalog中任意schema中的存储过程。即,包含所有runtime procedure,AFL generated procedure,design-time procedure所对应的的存储过程,或者是procedure template instance。这个功能是在HANA SPS7中新提出的功能。

调试步骤

对于catalog procedure:

切换到SAP HANA Development的perspective下,在Systems标签下找到要调试的存储过程。双击这个存储过程,或者右键选择“Open with SAP HANA Stored Procedure viewer”,则在SAP HANA Stored Procedure viewer中显示这个存储过程的定义。

对于design-time procedure:

在SAP HANA Development的perspective下,可以在Project Explorer标签下双击打开要调试的存储过程的对应文件。则在Editor中打开这个文件,显示存储过程的定义。

2.切换到Debug的perspective下,则可以在想要设置断点的语句处,点击左侧,设置断点。如下图所示:

则在Breakpoints的标签下,可以查看到当前所设置的断点。可以查看断点所在的行,删除一个或多个断点,并且可以看到每个断点当前的状态:pending,valid 或invalid。

3.创建一个新的debug configuration来启动一个新的调试会话。

在工具栏中点击,并选择“Debug Configurations”。为其命名,在“Procedure to Debug”中,选择“Catalog schema”或者“Local projects”,并选中所要调试的存储过程。点击“Apply”来保存设置。

与此同时,可以在Input Parameters的标签下对于每个输入参数赋值。对于标量类型的输入参数,可以赋予一个具体的值。对于表类型的输入参数,则必须填入一个catalog中存在的物理表格。

在Advanced标签下,还可以选择调试的执行方式:

  • All procedures in the call stack :所有嵌套的存储过程都以debug模式编译。
  • Procedures with breakpoints:只有有断点的存储过程以debug模式编译。

4.选择“Debug”来开始调试。则这个存储过程会在第一个断点处中止,点击或F8来跳到下一个断点。

在Debug标签下可以看到当前调试会话的状态。

并且可以在“Variable”标签下,查看当前断点处变量的值。对于表变量,可以右击选择“Open Data Preview”来预览数据。

调试 external session procedure

同样,也可以分析和调试一个外部应用所调用的存储过程。对于这个存储过程已经提前设置好断点,而且要知道调用这个存储过程的connection ID,HANA用户或者连接到HANA数据库并调用存储过程的HANA用户和外部应用的用户。

用来调试的用户,除了拥有相关的DEBUG权限以外。还要在“Privilege on Users”的标签处,添加权限,勾选“ATTACH DEBUGGER”。则这个用户可以连接到其他用户的会话中,从而可以调试存储过程和查看数据。

调试外部应用调用的存储 过程的debug configuration与其他情况的调试不同。如图,在“General”标签下,选择“Debug an external session”。选定要调试的“SAP HANA System”。

  • Set filter attribute

如果已知外部连接所使用的HANA用户,则可以使用这个方式。同时,也可以提供外部应用的用户。这是情况下,debug session开始前,调用存储过程的外部连接不一定开始建立。

  • Select a connection after initiating the debugger

如果知道外部应用连接到HANA数据库的connection ID,则可以使用这种方式。这种情况下,你可以在debug session开始后,选定自己指定的某个连接。因此,在debug session开始前,调用存储过程的外部连接必须已经建立。

则在开始debug session后,在外部应用中触发存储过程的调用。

与其他调试请况相同,这时存储过程会在第一个断点处中止。可以查看当前调试会话的状态,变量值等信息。可以使用

  或 F8 跳到下一个断点处。调试的方法与上面介绍的相同。

SAP HANA中调试存储过程相关推荐

  1. SAP HANA中的存储过程(sql procedure)

    语法: CREATE PROCEDURE {schema.}name {({IN|OUT|INOUT}                                  param_name data ...

  2. SAP LT Replication Server与SAP HANA中与Replication相关的表

    源系统中的所有application tables都是可以被initial load或replication的.在SAP系统中,SAP数据表的信息都是定义在表DD02L中,相关的文字说明定义在表DD0 ...

  3. [Step By Step]SAP Visual Intelligence数据操作、地图信息显示(SAP HANA中提取数据)

    Instruction: 本案例从SAP HANA中提取数据,试图创建数据的地图显示.数据修正 View: http://www.cnblogs.com/omygod/archive/2013/04/ ...

  4. SAP HANA中的SLT简介

    SAP HANA中的SLT简介 目录 SAP系统和SAP HANA之间的SLT连接架构 在SAP源系统中配置SLT服务器 通过SLT将数据从SAP源导入至SAP HANA 非SAP系统和SAP HAN ...

  5. SAP HANA中创建时间相关的数据时候需要Variant Schema

    在创建Generate Time Data时,我们需要选择Variant Schema 这个选项主要是跟我们同步SAP中的表T009和T009B,我们将这两张表放在哪个schema中,那么下拉的地方就 ...

  6. 【SAP HANA】关于SAP HANA中带层次结构的Analytic View创建、激活状况下在系统中生成对象的研究...

    根据SAP HANA中视图类型不同,我们主要做了以下几种测试: 一般Attribute View的生成情况, http://www.cnblogs.com/omygod/archive/2013/06 ...

  7. 在SQL Server Management Studio(SSMS)中调试存储过程

    Debugging is one of the most important but painful parts of any software process. To find some error ...

  8. 【SAP HANA】关于SAP HANA中带层次结构的Attribute View创建、激活状况下在系统中生成对象的研究...

    根据SAP HANA中视图类型不同,我们主要做了以下几种测试: 一般Attribute View的生成情况, http://www.cnblogs.com/omygod/archive/2013/06 ...

  9. SAP HANA中日期格式转换

    集团数仓要求的日期格式为:STRING yyyyMMddhhssmm 例如:20200924175407 SAP HANA中日期格式为:TIMESTAMP yyyy-MM-dd hh:ss:mm 例如 ...

最新文章

  1. 涉密文件检查工具_肇庆高要销毁资料文件公司粉碎销毁文件资料公司欢迎您
  2. javaScript 之 蚁人微任务
  3. 设备像素,设备独立像素,CSS像素
  4. Leetcode1711. 大餐计数[C++题解]:哈希表和枚举
  5. linxu其他用户登录mysql_Linux系统的MySQL用户如何开启远程登录权限
  6. 测试丢包_入行游戏测试之弱网测试工具
  7. 自适应粉色可爱棒棒糖倒立404错误页面源码
  8. poll/epoll/keyed-poll/keyed-epoll的唤醒--分层次的解决方案
  9. iPhone 和 华为手机 :手机端酷狗音乐提示 “导入歌曲不支持此操作” ----曲线解决导入问题
  10. 八、关于FFmpeg需要絮叨的一些事
  11. 关于PopWindow的一些介绍
  12. word文档图片画红线_Word文档怎么在图片内画线?
  13. 【人工智能】CB Insights:2018年全球人工智能发展趋势报告
  14. 03-链表(Linked List)应用分析
  15. 论文翻译:Anytime Stereo Image Depth Estimation on Mobile Devices
  16. Coursera机器学习+deeplearning.ai+斯坦福CS231n
  17. [openstack swift]0 swift介绍
  18. IDEA中JAVA代码模板设置指南
  19. 转载: HDMI 基础知识
  20. C语言井字棋电脑相互对战

热门文章

  1. mysql 5.7 windows 密码重置_win10 mysql57密码重置
  2. win7 usb 热敏打印机 记录 佳博 GP-L80180
  3. Upstream Consistent Hash
  4. android+粒子星空动画,HTML5 Canvas星空粒子动画压力测试
  5. 滴滴夜莺FAQ:滴滴夜莺v3版本升级相关问题
  6. java 异步接口测试
  7. Android Studio常用设置和快捷键分享汇总
  8. 装备仿真模拟训练系统软件
  9. 穷游杭州最适合的旅游景点之一
  10. 米斯齐 Mixly 触摸开关的使用