简介《HANA Studio 操作手册》面向刚接触 SAP HANA 平台的初学者与开发人员帮助其快速上手 HANA Studio 这一核心开发与管理工具减少自学过程中的摸索成本。手册围绕 HDBStudio 组件展开涵盖 Display Systems and Repositories View、账户申请、Add System、SQL 控制台、Add Package、Create Procedure、Decision Table、Table、Virtual Table、Scalar Function、Table Function、Calculation View、Synonym、Trigger、View 等对象的创建方法并讲解 Activate 激活机制以及从 DEV 到 TST、PRD 环境的程序上传与传输流程还附有常见问题解答。资源包为 1 个 doc 文档约 4.77MB目录结构清晰便于按章节查阅。目前已有 3155 人学习适合希望系统掌握 HANA 数据库管理、数据建模与开发优化的读者参考。1. 从一次 TST 环境传输出错说起这份手册到底解决什么问题刚接触 HANA 的人十有八九会在同一个地方翻车在 DEV 里把存储过程改得好好的激活也过了结果往 TST 一传要么找不到对应的 CR要么传过去报错回头翻日志又看不出所以然。更让人头大的是HANA Studio 里 Systems View 和 Repositories View 长得像双胞胎新手很容易在 Systems View 里右键半天发现根本建不了东西。这份《HANA Studio 操作手册》就是冲着这些具体场景来的——它不讲 HANA 的内存计算原理也不铺开讲列式存储而是把 HDBStudio 从连系统、建 Schema、建 Package到创建 Procedure、Decision Table、Calculation View再到 DEV→TST→PRD 的传输链路一步步拆成可照着点的操作。适合刚拿到 HANA 账号、需要独立完成开发对象创建和跨环境传输的工程师也适合已经会用但传输老出问题、想回头补基础的人。2. HDBStudio 环境搭建从加系统到能跑 SQL2.1 Systems View 与 Repositories View 的分工打开 HDBStudio 第一件事不是急着建东西而是先把两个视图的区别搞清楚。手册里反复强调一句话Repositories View 下创建修改Systems View 仅可查看。这不是随便写的背后是 HANA 的仓库管理机制——所有开发对象Procedure、Decision Table、Calculation View 等都必须挂在 Repository Package 下由仓库统一管理版本和激活状态而 Systems View 展示的是运行时视角你能看到 Schema、表、视图但没法在这里新建一个存储过程。调出视图的路径是Window → Show View → Other然后在列表里找 Systems 和 Repositories。常见做法是两个都打开左边放 Repositories 做开发右边放 Systems 做查询验证。如果你只开了 Systems View后面建 Package 那一步会直接卡住因为右键菜单里根本没有 New → Other 里的 Repository Package 选项。2.2 通过 JDBC 添加系统与账号准备添加 System 的本质是建立一个 JDBC 连接。手册里给了一条命令行方式的说明在 hana jdbc jar 包所在目录执行参数 -u 是数据库账号-n 是 IP:端口-c 是操作语句。端口计算方式是 3 instance number 15比如实例号是 00端口就是 30015实例号是 10端口就是 30025。这个公式在 HANA 里是固定的记不住就每次算一遍。# 在 hana jdbc jar 所在目录执行 # -u 数据库账号 -n IP:端口 -c 操作语句 java -jar ngdbc.jar -u SYSTEM -n 192.168.1.100:30015 -c SELECT * FROM DUMMY逻辑说明这条命令用 ngdbc.jar 建立到 HANA 的连接并执行一条测试 SQL。参数 -u 后面跟用户名-n 后面跟 IP 和端口-c 后面跟要执行的语句。如果返回 DUMMY 表的结果说明网络和账号都没问题。注意手册里特别标注了“需提前申请用户名和密码”DEV、TST、PRD 三套环境的账号是分开申请的别拿 DEV 的账号去连 PRD。添加系统时在 Systems View 右键 Add System填入 Host Name、Instance Number、User 和 Password。Next 之后 FinishRepositories 会根据 Systems 自动创建对应的仓库节点。这里有个细节如果你添加了多个系统Repositories View 里会出现多个顶层节点每个节点下才是各自的 Package 结构别在错误的系统节点下建对象。2.3 SQL Console 的连接状态陷阱手册里有一句容易被忽略但极其关键的话Hdbstudio 重新启动时启动前打开的 SQL Console 处于 No connection 状态需要重新选择 System打开新的 SQL Console 方能执行增删改查命令。这个坑我见过太多次——重启 HDBStudio 后之前的 SQL Console 标签还在看起来跟没关过一样但你敲任何 SQL 都报错提示没有连接。新手会以为是权限问题或者数据库挂了其实只是连接断了。解决办法很简单关掉旧的 SQL Console在 Systems View 下右键目标系统选择 Open SQL Console新开的 Console 会自动带上连接。如果你同时连了 DEV 和 TST每个系统要单独开自己的 Console别在一个 Console 里切来切去容易搞混当前执行环境。3. 开发对象创建Package、Procedure 与 Decision Table3.1 建 Package 与 Schema 的组织逻辑Package 是 HANA 仓库里的文件夹用来分类管理开发对象。手册里的操作路径是Repositories View 下右键 delivery点击 New → Other在窗口里点开 SAP HANA单击 Repository PackageNext输入 Package Name例如 testFinish。这里有个原则需要在哪个 Package 下新建子 Package就右键哪个 Package。比如你要在 delivery 下建一个 test就右键 delivery如果 test 已经存在你要在 test 下建 test_sub就右键 test。-- 建完 Package 后可以在 SQL Console 里验证 Schema 是否存在 SELECT SCHEMA_NAME FROM SYS.SCHEMAS WHERE SCHEMA_NAME TEST;逻辑说明这条 SQL 查的是 SYS.SCHEMAS 系统表确认名为 TEST 的 Schema 是否已经存在。参数 SCHEMA_NAME 换成你实际建的 Package 名。如果返回空说明 Package 还没激活或者建到了错误的系统节点下。注意 Package 名和 Schema 名在 HANA 里通常是关联的建 Package 时会让你选 Schema别选错。3.2 创建 Stored Procedure 的完整步骤在 test 下新建 Procedure TEST123 的路径是右键 test → New → Other → SAP HANA → Database Development → Stored Procedure → Next → 输入 Name → Browse 选择 Schema → OK → Finish。这里 Browse 选 Schema 那一步容易出错如果你之前建 Package 时选的 Schema 和这里选的不一致Procedure 会建到别的 Schema 下后面传输时找不到。-- Procedure 创建后在 SQL Console 里调用测试 CALL TEST.TEST123();逻辑说明CALL 后面跟 Schema 名和 Procedure 名中间用点号连接。如果 Procedure 有输入参数在括号里按顺序传入。参数说明Schema 名和 Procedure 名都要用双引号包起来因为 HANA 默认会把未加引号的标识符转成大写而你的对象名可能是小写或混合大小写。调用报错“invalid schema name”或“procedure not found”时先确认当前 SQL Console 连的是哪个系统再确认 Schema 和 Procedure 名拼写。3.3 Decision Table 的字段添加与规则维护Decision Table 是 HANA 里做规则决策的常用对象手册里给的例子是 DCT_DA_OTS_INDICATOR_TEST。创建路径和 Procedure 类似右键 test → New → Other → SAP HANA → Database Development → Decision Table → Next → 输入 Name → Finish。建完之后在打开的窗口里查询所需表然后添加字段。Decision Table 的结构分三部分条件字段Condition、决策字段Decision和规则行。条件字段是你用来判断的输入决策字段是输出结果。比如做一个库存预警决策表条件字段可以是“当前库存量”和“安全库存阈值”决策字段是“预警等级”。添加字段时数据类型要和底层表或计算视图里的字段类型一致否则激活时会报类型不匹配。提示Decision Table 激活前一定要检查每一行的条件组合是否覆盖了所有可能情况漏掉的条件在运行时不会报错但会返回空结果这种问题排查起来很费时间。4. 从 DEV 到 TST 的传输链路CR、DU 与顺序控制4.1 DEV Release 与 CR 的生成在 DEV 里改完 Procedure 或 Decision Table第一步是 Release。Release 的本质是把开发对象从“可编辑”状态提交到“可传输”状态同时生成一个 CRChange Request。手册里提到“The Sequence of CR Release”意思是多个 CR 的 Release 顺序会影响后续 TST Transport 时能不能找到对应的 DUDelivery Unit。-- 在 DEV 的 SQL Console 里查看当前待传输的 CR SELECT * FROM _SYS_REPO.ACTIVE_OBJECT WHERE OBJECT_NAME TEST123;逻辑说明这条 SQL 查的是 _SYS_REPO 下的 ACTIVE_OBJECT 表确认 TEST123 这个对象是否已经激活并进入仓库。参数 OBJECT_NAME 换成你要查的对象名。如果查不到说明 Release 没成功或者对象还在未激活状态。注意 _SYS_REPO 是系统 Schema普通账号可能没有查询权限需要 DBA 开权限。4.2 TST Transport 的操作与日志查看DEV Release 之后切到 TST 环境的 HDBStudio在 Repositories View 里找到对应的系统节点执行 Transport。手册里 TST Transport 失败的处理步骤写得很具体先查看 log再确认相关 SQL 是否在 TST 和 PRD 执行。查看 log 的路径通常在 Transport 操作后的提示信息里或者去 _SYS_REPO 下的 TRANSPORT_LOG 表里查。-- 在 TST 环境查看传输日志 SELECT * FROM _SYS_REPO.TRANSPORT_LOG WHERE TRANSPORT_ID 你的CR编号 ORDER BY TIMESTAMP DESC;逻辑说明这条 SQL 按 CR 编号查传输日志按时间倒序排列最新的记录在最上面。参数 TRANSPORT_ID 换成实际的 CR 编号。如果返回空说明 Transport 根本没触发或者 CR 编号不对。如果返回记录里有 ERROR 状态看 MESSAGE 字段的具体报错信息常见的是“object not found”或“dependency missing”。4.3 多账户修改同一程序的 Release 顺序手册里专门用一个小节讲这个问题多个账户修改同一个程序需注意 Release 顺序。先 Release 的先 Transport被调用的程序先 Release。这两条规则是血泪经验——如果 A 改了 Procedure P1B 改了 Procedure P2而 P1 里调用了 P2那么 B 必须先 Release P2A 再 Release P1否则 A 的 P1 在 TST Transport 时会因为找不到 P2 的新版本而失败。同理如果同一个程序被多个账户修改Release 顺序决定了最终生效的版本。后 Release 的会覆盖先 Release 的所以团队协作时一定要约定好谁先谁后或者用 CR 编号来协调。常见做法是每天下班前统一 Release 一次避免交叉覆盖。5. 避坑与排查传输失败、找不到 CR、激活报错5.1 DEV Release 后在 TST 找不到对应 CR 的 DU现象在 DEV 里明明 Release 成功了切到 TST 的 Transport 界面找不到对应的 CR 或 DU。原因最常见的是 Release 顺序问题——被调用的程序还没 Release或者多个账户修改同一程序时后 Release 的覆盖了先 Release 的。另一个原因是 CR 编号记错了或者 Transport 时选错了系统节点。解决先确认被调用程序的 Release 状态按“被调用先 Release”的原则重新走一遍再核对 CR 编号在 DEV 的 _SYS_REPO.ACTIVE_OBJECT 里查确认最后确认 TST 的 Transport 界面选的是正确的源系统和目标系统。5.2 TST Transport 失败但日志信息不明确现象Transport 执行后报失败但日志里只有一行“Transport failed”没有具体原因。原因HANA 的 Transport 日志有时只记录顶层错误具体原因在子日志或依赖对象的日志里。解决先查 _SYS_REPO.TRANSPORT_LOG 拿到 TRANSPORT_ID再用这个 ID 去查更详细的日志表同时确认相关 SQL 是否已经在 TST 和 PRD 执行过——如果 TST 里已经存在同名对象且结构不同Transport 会因冲突而失败。手册里给的步骤是“查看 log → 确认相关 sql 是否在 TST 和 PRD 执行”这个顺序不能反。5.3 激活时报语法错误但代码在 DEV 里是好的现象在 DEV 里激活成功的 ProcedureTransport 到 TST 后激活报语法错误。原因DEV 和 TST 的 HANA 版本或补丁级别可能不同某些语法在 DEV 支持但在 TST 不支持或者 Procedure 里引用了 TST 里不存在的表或视图。解决先确认两套环境的 HANA 版本是否一致用 SELECT * FROM SYS.M_DATABASE 查版本号再检查 Procedure 里引用的所有对象是否在 TST 里都存在特别是跨 Schema 引用的对象。5.4 SQL Console 显示 No connection 导致命令不执行现象SQL Console 标签还在但执行任何 SQL 都提示 No connection。原因HDBStudio 重启后之前打开的 SQL Console 连接已断开但标签页还保留着。解决关掉旧 Console在 Systems View 下右键目标系统选择 Open SQL Console新开的 Console 会自动带上连接。如果同时连了多个系统每个系统单独开 Console别混用。5.5 Decision Table 激活后查询返回空结果现象Decision Table 激活成功但用 SQL 查询时返回空结果。原因条件字段的组合没有覆盖到查询时传入的值或者条件字段的数据类型和传入值不匹配。解决打开 Decision Table 的规则视图逐行检查条件组合是否覆盖了所有可能的输入范围确认条件字段的类型和传入值的类型一致比如条件字段是 NVARCHAR传入的是数字HANA 不会自动转换会直接不匹配。6. 进阶技巧用 Calculation View 和虚拟表做跨环境验证6.1 Calculation View 的创建与激活检查Calculation View 是 HANA 里做数据聚合和转换的核心对象手册里给的创建路径是右键 test → New → Other → SAP HANA → Database Development → Calculation View → Next → 输入 Name → Finish。建完之后在图形化编辑器里拖拽表、加聚合节点、配过滤条件。激活 Calculation View 时HANA 会做一轮一致性检查包括底层表是否存在、字段类型是否匹配、连接条件是否有效。-- 激活后验证 Calculation View 能否正常查询 SELECT * FROM TEST.CA_SALES_ANALYSIS LIMIT 10;逻辑说明这条 SQL 从 Calculation View 里取前 10 行数据确认视图能正常返回结果。参数 LIMIT 10 是限制返回行数避免数据量太大拖慢 Console。如果报“invalid view name”说明视图没激活成功或者 Schema 不对如果返回空但没报错说明视图激活了但底层数据为空或者过滤条件把数据全过滤掉了。6.2 虚拟表在跨环境传输中的特殊处理虚拟表Virtual Table不实际存储数据只保存对远程数据源的连接信息。手册里把 Create Virtual Table 单独列出来说明它在传输时有特殊性——虚拟表的连接信息里包含 IP、端口、账号这些信息在 DEV 和 TST 可能不同。如果你直接把 DEV 的虚拟表 Transport 到 TST连接信息不会自动替换需要手动改。常见做法是在 TST 里单独建虚拟表或者用配置表的方式把连接信息参数化。如果非要传输Transport 之后第一时间去 TST 里检查虚拟表的连接配置把 IP、端口、账号改成 TST 对应的值。这个坑我踩过传输完看着激活成功一查数据全是空的查了半天才发现连的还是 DEV 的库。6.3 用 Synonym 简化跨 Schema 引用Synonym 是给数据库对象起别名手册里把它列为创建对象之一。跨 Schema 引用对象时如果每次都写全限定名Schema.Object代码又长又容易写错。建一个 Synonym 指向目标对象之后直接用别名引用传输时也少一层依赖。-- 创建 Synonym 指向另一个 Schema 下的表 CREATE SYNONYM TEST.SYN_EMPLOYEE FOR HR.EMPLOYEE;逻辑说明这条 SQL 在 TEST Schema 下创建一个名为 SYN_EMPLOYEE 的别名指向 HR Schema 下的 EMPLOYEE 表。参数 FOR 后面跟目标对象的全限定名。创建后在 TEST Schema 下直接用 SYN_EMPLOYEE 就能查 HR.EMPLOYEE 的数据。注意 Synonym 本身也需要激活且传输时目标 Schema 下必须存在同名的目标对象否则 Synonym 激活会失败。从那以后我每次 Transport 之前都强制走一遍检查清单被调用的程序先 Release 了吗、CR 编号对了吗、TST 里同名对象的结构一致吗、虚拟表的连接信息改了吗。这四步走完传输失败的概率能降一大半。希望帮到你。本文还有配套的精品资源点击获取
企业数字化 ERP 产品动态
相关推荐
将 Yii 2 用作微框架:不依赖应用模板,从零构建 JSON API 实战指南 后端Web框架 【免费下载链接】yii2 Yii 2: The Fast, Secure and Professional PHP Framework 项目地址: https://gitcode.com/gh_mirrors/yi/yii2 点击查看 免费下载 Yii 2 不仅是一个功能完整的全栈框架,其核心本身就是一个可独立运作的微框架&#x… · 2026/9/23 17:01:16
鸿蒙服务卡片开发实战:用音乐卡片跑通桌面控制完整链路 简介:面向鸿蒙应用开发者,这是一份音乐服务卡片实践项目,主要解决在HarmonyOS中从零搭建桌面万能卡片的问题,适合初中级开发者参考。资源共60个文件,包含Java与JavaScript两种语言的源代码、JSON格式的配置文件、HML和… · 2026/9/23 17:01:16
Cesium卫星雷达三维可视化:波束锥体与动态扫描线实现详解 简介:面向前端开发者与三维可视化爱好者,这份资源围绕 Cesium 库与卫星雷达数据的组合展示,适合想要快速上手三维地球场景、学习遥感数据可视化入门实践的读者。压缩包共十一个文件,包含两个可直接运行的 HTML 页面,分… · 2026/9/23 17:39:34
九曳供应链入门到精通:3步吃透性能优化底层逻辑 九曳供应链入门到精通:3步吃透性能优化底层逻辑 官方文档翻了三遍还是云里雾里?别慌,九曳供应链这套系统看似庞大,核心其实就那几块硬骨头。很多开发者卡在“入门”阶段,是因为只看了API接口,没搞懂数据流。想从入门到精通,必须看懂底层是怎么跑的… · 2026/9/23 17:39:21
上震下兑避坑指南:新手选型别踩这3个坑 上震下兑避坑指南:新手选型别踩这3个坑 官方文档太长抓不住重点,是很多新手在接触【上震下兑】相关技术栈时的第一反应。面对海量的参数说明和晦涩的定义,很容易陷入“看了等于没看”的困境,导致在项目初期做出错误的技术决策。新手避坑的关键,不在于背… · 2026/9/23 17:39:21
Pocket Flow Agentic Coding 指南:人类设计、AI 编码的 LLM 应用开发方法论 人工智能大模型AI Agent工作流自动化RAG 【免费下载链接】PocketFlow Pocket Flow: 100-line LLM framework. Let Agents build Agents! 项目地址: https://gitcode.com/gh_mirrors/poc/PocketFlow 点击查看 免费下载 本指南翻译并深度解析 Pocket Flow 官方文档中… · 2026/9/23 17:39:21
Python课设实战:从爬虫到机器学习,构建NBA比赛胜负预测模型 简介:一份聚焦NBA比赛数据爬取与机器学习预测的Python课程设计大作业资源,面向具备一定Python基础、正在准备课设或答辩的高校学生。项目通过爬虫获取NBA历年比赛数据,结合机器学习对球队交锋记录与赛季表现进行智能分析,最终输出… · 2026/9/23 17:39:15
C语言扫雷游戏 文章目录前言一、扫雷游戏的分析和设计1.1扫雷游戏的功能和说明1.2游戏的分析和设计1.2.1数据结构的分析1.2.2文件结构设计二、扫雷游戏的代码实现2.1game.h文件2.2game.c文件2.2.1menu()函数打印游戏菜单2.2.2InitBoard()初始化棋盘2.2.3DisplayBoard()打印函数2.2.4SetMine()… · 2026/9/23 17:39:15
3招搞定手机怎么下载微信面试难题实战项目解析 3招搞定手机怎么下载微信面试难题实战项目解析 面试被问“手机怎么下载微信”背后的原理,90%的人答不上来。别笑,这看似弱智的问题,实则是考察你对移动应用分发机制、安全校验及网络协议理解的试金石。我带过不少校招新人,他们背了八股文,却连一个A… · 2026/9/23 0:00:03
你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型 你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型 面试被问“高并发下如何保证消息不丢失”,你张口就是“用Redis”,结果面试官追问“如果Redis宕机了怎么办”,你瞬间卡壳。这种场景太常见了,很多新手在背八股文时,只记住了技术名词… · 2026/9/23 0:00:29