0

因为我的 C++ OCI 包装器只支持绑定 Int/Double/String/Clob 类型的数据。所以我想知道是否有可能让我的存储过程返回一个 clob,它保存来自 SELECT 语句的结果集。

喜欢:

  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 回答