SAP HANA 中调试存储过程

所需积分/C币:25 2018-04-25 13:54:13 535KB PDF

SAP HANA 中调试存储过程 SAP HANA 中调试存储过程 SAP HANA 中调试存储过程
GRANT DEBUG ON <procedure name> To <user name>: GRANT DEBUG ON SCHEMA <schema name> to <user name> 调试 design- time procedure 对于在一个共享的 Project中的存储过程,你可以进行调试和分析。即对 workspace中已经被提交和 激活的一个 hdbprocedure或者 procedure文件进行调试。这是从 HANA SPS6版本开始提出的功能。 这样建立存储过程是创建相关的 subprocedure或者 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: PDFmyURL -online url to pdf conversion PDFmyURL 切换到 SAP HANA Development的 perspective下,在 Systems标签下找到要调试的存储过程。双 击这个存储过程,或者右键选择 Open with SAP HANA Stored Procedure viewer”,则在 SAP HANA Stored procedure viewer中显示这个存储过程的定义。 D晶US 16 on f 4品YUAN userId= 17 > C Column Views 18 group by f mediaid, D② Functions 19; b② Indexe 20 Procedures 21 END; b Table Types OuENDAn b e Sequ回 pen Definition D ynot Show Authorization b Table Delete Delete be tri b e ViewE)Refresh > aD SYS BI D a-_SYS_BIC Generate b品SYS_DA D as SYS_ EPN Import D品 SYS REP D ag SYS RT D aa SYs sed QL SQL Console S D_Sys._sTA B Find Table D品_ SYS XS Open with SAP HANA Stored Procedure viewer 对于 design- time procedure: 在 SAP HANA Development的 perspective下,可以在 Project Explorer.标签下双击打开要调试的存 储过程的对应文件。则在 Editori中打开这个文件,显示存储过程的定义。 2切换到 Debug的 perspective下,则可以在想要设置断点的语句处,点击左侧,设置断点。如下图所 PDFmyURL -online url to pdf conversion PDFmyURL SQLScript 1 PROCEDURE . Test data: overlap"( out result yuan. ol re LANGUAGE SQLSCRIPT SQL SECURITY INVOKER 2345678901 DEFAULT SCHEMA <default schema name> READS SOL DATA AS 6 BEGIN 宋宋宋宋家宋宋宋宋宋宋宋*宋宋宋宋宋宋宋宋宋宋宋率 Write your procedure logic 1 e12 tmpl=select 13 userid, campid, mediaid, type from YUAN RECORD group by usE 14 015 result= 16 select 17 f mediaid as mediaidl,. mediaid as mediaid2, count()as count 18 则在 Breakpoints的标签下,可以查看到当前所设置的断点。可以查看断点所在的行,删除一个或多 个断点,并且可以看到每个断点当前的状态: pending,vaid或 invalid 04= Variables o Breakpoints 4回 Se Line Breakpoint v e overlap. hdbprocedure [line: 12] v e overlap. hdbprocedure [line: 15 No details to display for the current selection 3创建一个新的 debug configuration来启动一个新的调试会话。 在工具栏中点击,并选择 Debug Configurations"为其命名,在 Procedure to Debug?中, 选择“ Catalog schema'或者“ ocal projects”,并选中所要调试的存储过程。点击“ Apply”来保存设置。 PDFmyURL -online url to pdf conversion PDFmyURL Debug Configurations Create, manage, and run configurations Debug a stored procedure X|日幸 Name: New_ configuration (2) type filter tet eneral Input Parameters Advanced ● Eclipse Application Eg Java Applet 0) Procedure to Debug 可 Java Application JU JUnit Catalog schemas OVERLAP Ju JUnit Plug-in Test YUAN OVERLAP □ MWE Workflow O Debug an External Session e oSGi Framework SAP HANA System p Remote java Application O Set Filter Attributes 3 Remote JavaScript HANA Use N Rhino JavaScript F River Application User(Optional) a Uf SAP HANA Stored Procedure o Select a connection after initiating the debugge U New_configuration Uf New_ configuration (1) Uf New_configuration (2) U New_configuration_external_session U New_ configuration2 4回 XS Java Script Revert Filter matched 21 of 24 items ebl lose 与此同时,可以在 nput Parameters的标笭下对于每个输入参数赋值。对于标量类型的输入参数,可 以赋予一个具体的值。对于表类型的输入参数,则必须填入一个 catalog中存在的物理表格 在 Advanced标签下,还可以选择调试的执行方式 · All procedures in the call stack:所有嵌套的存储过程都以 debug模式编译 Procedures with breakpoints:只有有断点的存储过程以 debug模式编译 PDFmyURL -online url to pdf conversion PDFmyURL Create, manage, and run configurations Debug a stored procedure 画其|日靠 Name: New_contiguration (2) pelter text General Input Parameters Ad. ● Eclipse Applicatio Compile a debug execution plan for e Java Applet o All procedures in the call stack p Java Application Ju JUn This apton will compile all of the nested procedures that are referenced from the procedure stack in debug mode(without optimization Ju JUnit Plug-in Test This enables you to use all of the debugging options during the debug session D MWE Workflow L Mwe? Launch This opton will only compile procedures with breakpoints in debug mode (without optimization) and will only allow you to break in these 4 oSGi Framework procedures. g Remote lava Application 乡Fen Rhino JavaScript RIver 4 U SAP HANA Stored Procedure atIo Uf New_ configuration (2) ff New_configuration_es2 Uf New_configuration _external_session tf New configuration2 国 XS Javascrip Revert Filter matched 21 of 24 items 4选择 Debug”来开始调试。则这个存储过程会在第一个断点处中止,点击或F8来跳到下一个断点 在 Debug标签下可以看到当前调试会话的状态。 y Debug 2X Uf New_configuration(2)(SAP HANA Stored Procedure a (2 overlap. hdbprocedure a op Thread(Suspended(Breakpoint at line12 in) /Test/data/overlap. hdbprocedure Line12 并且可以在 variable标签下,查看当前断点处变量的值。对于表变量,可以右击选择“ Open Data review来预览数据。 PDFmyURL -online url to pdf conversion PDFmyURL 09=Variables 23.o Breakpoints Name Value 令 RESULT 0 Rows ◆TMP1 10875886Rows 18875886Rows 调试 external session procedure 同样,也可以分析和调试一个外部应用所调用的存储过程。对于这个存储过程已经捉前设置好断点, 而且要知道调用这个存储过程的 connection D,HANA用户或者连接到HANA数据库并调用存储过程 的HANA用户和外部应用的用户。 用来调试的用户,除了拥有相关的 DEBUG权限以外。还要在 Privilege on Users的标签处,添加权 限,勾选“ ATTACH DEBUGGER”。则这个用户可以连接到其他用户的会话中,从而可以调试存储过程和 查看数据。 Granted Roles System Privileges Object Privileges Analytic Privileges Package Privileges Application Privileges Privileges on Users Y器· Privileges for SYSTEM rancor STEM SYSTEM V ATTACH DEBUGGER 调试外部应用调用的存储过程的 debug configuration与其他情况的调试不同。如图, 在 Genera|标签下,选择 Debug an external session。选定要调试的“ SAP HANA System ● Set filter attribute 如果已知外部连接所使用的HANA用户,则可以使用这个方式。同时,也可以提供外部应用的用户。这是情况 下, debug session开始前,调用存储过程的外部连接不一定开始建立 PDFmyURL -online url to pdf conversion PDFmyURL Select a connection after initiating the debugger 如果知道外部应用连接到HANA数据库的 connection D,则可以使用这种方式。这种情况下,你可以 在 debug session开始后,选定自己指定的某个连接。因此,在 debug session开始前,调用存储过程的外部连 接必须已经建立。 陌 Debug Configurations Create, manage, and run configurations elect a system frcm the " SAP HANA System" drop-down list. The systems appearing in the drop-down ist support external debugging |日靠 Name: New_ configurat on (2) prefilter text General Input Parameters Advanced 鲁 Eclipse Application e Java Applet a Java Application Ju JUnit Local projects Testtdelauverlap.hdbprucedure Browse. JUnit Plug-in T ository.work space workspace ol9\lest\data \overlap. hdbprocedure MWE Workflow 0 Debug an Extemal Session C Mwe Launch 中 SAP HANA System E Remote Java Application ② Set Filler Attributes N Rhino JavaScript 国 River Application User(Optional) a f SAP HANA Stored Procedure o Select a connection after initiating the debugger Uf New_confiquration(1 ff New_contiguration (2 f New confiquration es2 U New_configuration 4国 JaVascRipt 国 xs_debug Filter matched 21 cf 24 items Apy□Reet ⑦ 则在开始 debug session后,在外部应用中触发存储过程的调用 与其他调试请况相同,这时存储过程会在第一个断点处中止。可以查看当前调试会话的状态,变量值 等信息。可以使用或F8跳到下一个断点处。调试的方法与上面介绍的相同 想获取更多 SAP HANA学习资料或有任何疑问,请关注新浪微博@ HANAGeek!我们欢迎你的加入! 转载本文章请注明作者和出处<htt/scn.sap.com/community/chinese/hana/blog/2014/06/16sap hana%E4%B8%AD%E8%B0%83%E8%AF%95%E5%AD%98%E5%82%A8%E8%BF%87%E7%A8%8B>,请勿 用于任何商业用途 PDFmyURL -online url to pdf conversion PDFmyURL Alert Moderator 3 Comments You must be logged on to comment or reply to a post. 文亮张 October 30, 2014 at 3: 34 pm 不错,感谢分享 like(O) KDC YAO November 5, 2014 at 2: 30 am 谢谢分享 Debug an External SessionI的时候,尽管 Procedure里面设置了断点,可是按照上面设置后,在外部应用中执行后,不会停到断 点处。请问会是什么原因呀? PDFmyURL -online url to pdf conversion PDFmyURL

...展开详情
img
  • 分享精英

    成功上传11个资源即可获取

关注 私信 TA的资源

上传资源赚积分,得勋章
最新资源