Использование @NamedPLSQLStoredFunctionQuery с логическим параметром IN, SYS.SQLJUTL не установлен

Среда- JavaSE 6, Oracle 11, WebSphere 7, eclipseLink 2.5.2

Вариант использования, который мы хотели бы использовать

@NamedPLSQLStoredFunctionQuery

как это:

@NamedPLSQLStoredFunctionQuery
   (name = "convertToString",
    functionName = "my_schema.my_package.convert_to_string",
    parameters =
      { @PLSQLParameter(name = "p_boolean", databaseType = "BOOLEAN") },
        returnParameter = @PLSQLParameter(name = "RESULT", databaseType = "VARCHAR_TYPE"))

Затем мы выполняем такие функции:

Query query = em.createNamedQuery("convertToString");
        query.setParameter("p_boolean", true);
        Object result = query.getSingleResult();
        System.out.println("result=" + result);

и / или

Query query = em.createNamedQuery("convertToInteger");
        query.setParameter("p_boolean", true);
        Object result = query.getSingleResult();
        System.out.println("result=" + result);

Наша реализация функций Oracle выглядит следующим образом:

CREATE OR REPLACE package body my_schema.my_package
as
    /**
    * Converts the given boolean into an integer (true: 1, false: 0).
    * @param p_boolean boolean value to convert to an integer
    */
    function convert_to_integer
    (
        p_boolean   in boolean
    )
        return integer
    is
    begin
        if (p_boolean = true) then
            return isac_api.api_boolean_constants_pg.integer_true;
        end if;

        return isac_api.api_boolean_constants_pg.integer_false;
    end;

    /**
    * Converts the given boolean into a string (true: 'true', false: 'false').
    * @param p_boolean boolean value to convert
    */
    function convert_to_string
    (
        p_boolean   in boolean
    )
        return varchar2
    is
    begin
        if (p_boolean = true) then
            return isac_api.api_boolean_constants_pg.string_true;
        end if;

        return isac_api.api_boolean_constants_pg.string_false;
    end;
end;

Это на самом деле не работает.

Вопросы

  • В чем проблема?
  • Что мы можем сделать, если нам не разрешено устанавливать 'SYS.SQLJUTL' в базу данных, НО eclipseLink, кажется, использует его для преобразований?

С уважением Ян

0 ответов

Другие вопросы по тегам