七月上旬更新速递丨 聚焦集成、安全与AI深度进化

更新亮点: 本次重点强化系统集成能力与AI认知升级,新增4大核心模块9项资源,优化4项资源,点击标题了解(持续互动赢麦豆,解锁高阶技能)

重点推荐:《场景化数据分析实战》课程操作手册

配套六月王炸课程的全套落地指南,手把手教你复现实战场景!

二、实战技巧分享

高效处理资源集成难题》→ 从基础出发,深入探究集成的秘密

三、开发技能突破

第三方系统调用Smartbi接口》→讲解系统集成时的jar包获取,以及集成时代码调用的基本流程。

集成接口介绍》→梳理Smartbi目前提供的接口,以及不同接口的调用流程。

AI每日一学

DeepSeek-R1-0528模型升级:推理与生态的双重升级》→ 解析模型性能提升40%的关键技术 (技术前沿)

简单总结一下机器学习中的几种常见的学习方式与区别》→ 监督/无监督/强化学习差异与应用场景图解 (基础重构)

五、资源更新

CAS单点登录 V2版》上线→ 接入到 CAS 平台中,并实现单点登录

组织/用户/角色信息管理API接口》上线→ 一套 HTTP API的组织、用户、角色信息管理接口

竹云统一身份认证平台组织用户同步对接》上线→ Smartbi封装对应的服务接口,给竹云的统一身份认证平台实时调用,完成组织、用户和角色信息的实时同步。

交互式仪表盘支持自定义字体》优化→ 修复了文本组件编辑状态不生效的问题

只允许外网某种移动端APP访问》优化→ 针对V11版本,增加了钉钉、企业微信访问限制功能

AD域(LDAP/LDAPS)登录验证》优化→ 修复了“更新白名单状态之前没有判断判断用户是否存”的问题

元数据分析落地到知识库》优化→ 增加获取资源创建者的逻辑判断,对空值空对象等情况做优化

麦粉社区
>
帖子详情

Oracle在没有结果集返回的存储过程该怎么调用

安装指导 发表于 2024-9-13 01:29
发表于 2024-9-13 01:29:49
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2024-9-13 01:29:50
在Smartbi中调用Oracle存储过程时,如果存储过程没有返回结果集(即没有使用游标作为输出参数),您仍然可以通过以下方式在数据集中调用该存储过程。

方法一:使用动态SQL
创建一个包含动态SQL的存储过程:

在Oracle数据库中创建一个存储过程,该存储过程执行一些操作但不返回结果集。例如:
SQL
CREATE OR REPLACE PROCEDURE "FOODMART"."SP_NO_RESULT" (I_ID IN NUMBER) AS
BEGIN
  -- 执行一些操作,例如更新数据
  UPDATE account SET account_name = 'Updated' WHERE account_id = I_ID;
END;
在Smartbi中创建一个数据集:

在Smartbi中创建一个新的数据集,选择“原生SQL数据集”。
在SQL编辑器中编写以下SQL语句:
SQL
BEGIN
  "FOODMART"."SP_NO_RESULT"(:param_id);
END;
在这个例子中,param_id 是您在Smartbi中定义的参数,用于传递给存储过程。
保存并运行数据集:

保存数据集并运行它。在运行时,输入参数 param_id 的值,系统将调用存储过程并执行相应的操作。
方法二:使用SELECT语句包装
创建一个返回结果集的存储过程:

如果存储过程没有返回结果集,您可以创建一个新的存储过程,该存储过程调用原始存储过程并返回一个虚拟的结果集。例如:
SQL
CREATE OR REPLACE PROCEDURE "FOODMART"."SP_WRAPPER" (I_ID IN NUMBER, O_RESULT OUT VARCHAR2) AS
BEGIN
  -- 调用原始存储过程
  "FOODMART"."SP_NO_RESULT"(I_ID);
  -- 返回一个虚拟的结果
  O_RESULT := 'Operation Completed';
END;
在Smartbi中创建一个数据集:

在Smartbi中创建一个新的数据集,选择“原生SQL数据集”。
在SQL编辑器中编写以下SQL语句:
SQL
DECLARE
  v_result VARCHAR2(100);
BEGIN
  "FOODMART"."SP_WRAPPER"(:param_id, v_result);
  -- 返回结果集
  SELECT v_result AS result FROM dual;
END;
在这个例子中,param_id 是您在Smartbi中定义的参数,用于传递给存储过程。
保存并运行数据集:

保存数据集并运行它。在运行时,输入参数 param_id 的值,系统将调用存储过程并返回虚拟的结果集。
注意事项
在Smartbi中,数据集必须有返回结果集,因此即使存储过程没有返回结果集,您也需要通过上述方法返回一个虚拟的结果集。
如果存储过程执行的操作不需要返回结果集,您可以在Smartbi中创建一个“执行SQL”任务来调用存储过程,而不是通过数据集。
回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1回帖数 0关注人数 1252浏览人数
最后回复于:2024-9-13 07:52
快速回复 返回顶部 返回列表