См. фактический код функции в DB2 для IBM i

Привет, парень, я создаю функцию в DB2 UDB for AS/400 версии 07.01.0000 V7R1m0

Я использую окна с dbvisualizer для подключения к серверу.

Моя функция...

CREATE FUNCTION JVAOBJ.BNOWPAPOL(POL VARCHAR(10)) RETURNS DECIMAL(7,7) LANGUAGE SQL NOT
    DETERMINISTIC READS SQL DATA
    RETURN
    (
        SELECT
            CASE
                WHEN NUM IN (1,2)
                THEN 0.3
                ELSE 0.19698
            END AS VALOR
        FROM
            LMDDTA.VERT240                   
        WHERE
            POLLIFE = POL )

Он возвращает 0.3 или 0.19698 в зависимости от параметра POL.

Для этого я удаляю DROP FUNCTION JVAOBJ.BNOWPAPOL и запускаю CREATE, пока не заработает.

Моя проблема в том, что я не вижу фактический код функции в dbvisualizer, я не вижу созданную функцию

скриншот dbvisualiser

Как я могу увидеть фактический код?

Примечание: Администратор сервера имеет доступ к консоли as400 (да, этот черный экран с зелеными буквами или оранжевыми буквами, в чем я мало разбираюсь) может быть, я и вижу его отсюда.

Примечание 2. Для подключения я использую драйвер jt400.


person jasilva    schedule 06.05.2015    source источник
comment
Вы показываете изображение с dbvis, но не ясно, исследовали ли вы его. Что отображается в узле JVAOBJ->Процедуры?   -  person user2338816    schedule 06.05.2015
comment
@ user2338816 Это расширено, ничего   -  person jasilva    schedule 06.05.2015
comment
Чтобы гарантировать, что исходный код SQL действителен во всем мире [например, любой из страны, которая может помочь, но для которых их десятичный разделитель является запятой вместо точки], для любого числа, которому предшествует запятая в качестве разделителя, всегда включайте предшествующий пробел для следующего\отдельного номера. Например, код «DECIMAL(7, 7)» вместо «DECIMAL(7,7)» и «IN (1, 2)» вместо «IN (1,2)». Чрезвычайно важно, если исходный код общие среди разработчиков, а не только скомпилированные объекты.   -  person CRPence    schedule 06.05.2015


Ответы (2)


Попробуйте IBM i Navigator для Интернета. Если он настроен на вашем компьютере, вы можете получить к нему доступ по этому URL-адресу: https://your.ibm.i:2005/ibm/console/login.do?action=secure

Если он не настроен, то, возможно, вы можете попросить администратора установить клиент Windows. Он является частью Client Access для Windows и называется IBM i Navigator для Windows.

В любом случае используйте дерево навигации, чтобы перейти к Базы данных > Машина > Схемы > JVAOBJ > Функции. Щелкните правой кнопкой мыши свою функцию> Определение, а затем выберите «Обычное тело».

РЕДАКТИРОВАТЬ Добавить SYSROUTINE Другой способ увидеть тело подпрограммы — через таблицу каталога DB2 SYSROUTINE. select specific_schema, specific_name, routine_definition from sysroutine

person Buck Calabro    schedule 06.05.2015
comment
Я сверяюсь с системным администратором в IBM i Navigator for Windows инструменте в дереве, иду к Databases - > machine > Schemas -> QGPL И ничего не показывает, также элемент JVAOBJ отсутствует в дереве. способ проверить это из Client Access for Windows ? - person jasilva; 06.05.2015
comment
В SCHEMAS должно быть много записей, а не только QGPL. Попросите администратора добавить JVAOBJ в список, и вы сможете увидеть содержимое этой схемы. - person Buck Calabro; 06.05.2015
comment
Щелкните правой кнопкой мыши «Схемы» и выберите «Выбрать схемы для отображения». - person Buck Calabro; 06.05.2015

Я знаю, что IBM i Navigator — отличный инструмент, но чтобы им овладеть, нужны определенные знания.

Самый простой способ — запросить системные таблицы SQL с помощью dbvisualizer.

SELECT * FROM qsys2/sysfuncs 
WHERE (SPECIFIC_SCHEMA, SPECIFIC_NAME) = ('JVAOBJ', 'BNOWPAPOL')                                          
person Jairo R. Flores    schedule 07.05.2015
comment
О, круто! самый простой способ не беспокоя сисадмина - person jasilva; 07.05.2015