技术文章 - CS264912

无法将带有 OUT 参数的 Oracle 存储过程的有效结果返回到 ThingWorx 中的 SQL 查询服务

已修改: 17-Jan-2023   


注意:本文已使用机器翻译软件翻译,以方便非英语客户阅读。但翻译内容可能包含语法错误或不准确之处。请注意, PTC对本文所含信息的翻译准确性及使用后果不承担任何责任。请在 此处 查看本文的英文原始版本以便参考。有关机器翻译的更多详情,请单击 此处
感谢您告诉我们。我们将尽快审阅此译文。

适用于

  • 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