アーティクル - 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 サービス内の Thing の下で SQL コマンドを介して実行すると、有効な結果を返します。
BEGIN
demo1 (
col1, col2)
End;
  • Col1 および Col2 の値は、ThingWorx Service の入力パラメーターを使用して置換するか、これらのパラメーターの値を直接入力することができます
  • ただし、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 の Thing の下で SQLQuery サービスから呼び出されると、次の出力が返されます
「OracleDB12C でサービス Demo1Proc を呼び出せません: null」
  • テーブルに 5 行が含まれているため、Oracle の SQL Developer / SQL*Plus で同じ手順を実行すると、必要な結果が返されます。
ユーザーが追加した画像
最新バージョンはこちらを参照ください CS264912