技术文章 - CS264912
无法将带有 OUT 参数的 Oracle 存储过程的有效结果返回到 ThingWorx 中的 SQL 查询服务
已修改: 17-Jan-2023
适用于
- ThingWorx Platform 7.3
说明
- 无法将带有 OUT 参数的 Oracle 存储过程的有效结果返回到 ThingWorx 中的 SQL 查询服务
- 没有 OUT 参数的 Oracle 存储过程返回正确的结果,这些可以通过返回 ThingWorx 的 SQL 查询/命令服务的正确结果集来执行
- 例如,在 Oracle 模式中创建以下存储过程
Create or replace procedure demo1 (col1 in <DataType> , col2 in <DataType>) AS Begin Insert into <tableName> values (col1, col2); End;
- 通过 ThingWorx 服务中的事物下的 SQL 命令执行时返回有效结果,例如
BEGIN demo1 ( col1, col2) End;
- 可以使用 ThingWorx 服务中的输入参数替换 Col1 和 Col2 的值,也可以直接输入这些参数的值
- 但是,当使用 OUT 参数输出结果时,存储过程无法返回所需的结果,例如
- Oracle 中的存储过程是使用 OUT 参数创建的
create or replace PROCEDURE GET_ROW_COUNT ( Result OUT NUMBER ) AS BEGIN select count(col1) into result from DEMOTABLE; END GET_ROW_COUNT;
- 从 ThingWorx 中事物下的 SQLQuery 服务调用时返回以下输出
“无法在 OracleDB12C 上调用服务 Demo1Proc:空”
- 在 Oracle 的 SQL Developer / SQL*Plus 中执行相同的过程返回所需的结果,因为表确实包含 5 行
这是文章 264912 的 PDF 版本,可能已过期。最新版本 CS264912