ORA-06502: PL / SQL: ошибка числа или значения ~ для всех значений STRING - PullRequest
0 голосов
/ 13 ноября 2011

Я столкнулся с ошибкой

ORA-06502: PL / SQL: ошибка с числовым значением или значением в FETCH INTO (последняя строка в ниже ФУНКЦИИ).

Я понимаю, что эта ошибка может произойти из-за несоответствия типов данных в курсоре и его типе строки.

Но если вы видите скриншот (definition of HQP_IF_DATA_CONV_EXTRACT и 1 запись, которая будет вставлена), все выглядит хорошо.

Все данные типа STRING и ограничение не превышено.

Есть ли лучшая идея, в противном случае, как устранить неполадки в дальнейшем?

  FUNCTION INSERT_INTO_BU_STAGING(p_sql IN VARCHAR2)
  RETURN VARCHAR2
  IS
  TYPE refCursor IS REF CURSOR; -- define weak REF CURSOR type
  a_cursor refCursor;
  rec HPQ_IF_DATA_CONV_EXTRACT_BU%ROWTYPE;

  j NUMBER;

  BEGIN
  j := 0;

    OPEN a_cursor FOR p_sql;
    LOOP
      FETCH a_cursor INTO rec;

table and record to be inserted

1 Ответ

1 голос
/ 13 ноября 2011

Проблема в том, что порядок столбцов, используемых для выбора, может отличаться от того, как определена запись. Поэтому вы можете попытаться загрузить столбец в поле записи, размер которого определен с меньшим размером, чем данные, возвращаемые из select.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...