0

私の C++ OCI ラッパーは、Int/Double/String/Clob 型のデータのバインドのみをサポートしているためです。そのため、SELECT ステートメントからの結果セットを保存するストアド プロシージャが clob を返すようにすることが可能かどうか疑問に思っていました。

お気に入り:

  FUNCTION sp(
    in_param VARCHAR2,
  ) RETURN CLOB
  IS
    my_clob  CLOB;
  BEGIN

      my_clob := SELECT col1, col2, col3 FROM s WHERE s.param = in_param;
    RETURN my_clob;

  END sp;
4

1 に答える 1

0

CLOB と VARCHAR 列を持つテーブルがあり、これは機能します。

create or replace
  FUNCTION F_LOB_TEST(in_char  VARCHAR2 ) RETURN CLOB
  IS
    my_clob  CLOB;
  BEGIN
    SELECT FIELD_CLOB 
    INTO   my_clob 
    FROM   LOB_TEST 
    WHERE  FIELD_CHAR=in_char;

    RETURN my_clob;

  END;

関数が PL/SQL で期待しているものを返すことを確認するには、次のように上記の関数を呼び出すことができます。

select F_LOB_TEST('A') FROM DUAL;
于 2012-07-27T16:05:39.490 に答える