Вопрос : Подсчитывающ длину характера длиннего поля - ошибки

Hi, я пытаюсь подсчитать длину полей которые длиннего типа данных.  Я написал find_length2 вызванное функцией и я вызываю его от другой процедуры.  Она работает, но окончательн ошибки после 500.000 добавочных рядков и говорит «ORA-06502: PL/SQL: ошибка численного или значения».  Пожалуйста help.

I am заключая экземпляр функции find_lenth и процедуры, котор я использую для того чтобы вызвать ее функцией длины below.

Thanks much.

Find:
CREATE или ЗАМЕНЯЕТ ТЬ ДЛИННЕЕ number
IS

RETURN функции Find_Length2
(номера geo_log_id) long_var;
BEGIN
ВЫБИРАЕТ long_desc В long_var
ОТ logs
ГДЕ log_id = geo_log_id; длина
возвращенная (long_var);
END;
/
Procdure для того чтобы вызвать функцию:
CREATE ИЛИ ЗАМЕНЯЕТ ТЬ log_id is
log_id_cursor GEO_COUNT_DB_LONG_SIZE
is
cursor ПРОЦЕДУРЫ отборное от logs
где sti_casetype внутри (
выбирает sti_casetype
от ford_acs_casetypes
где transition_phase = 'br/> DB'< и br/> B'< <> ford_contact_type_cd '); номер local_log_id
; long_desc_length номер
/* (20.0); номер long_desc_length */
;
begin
раскрывает log_id_cursor; log_id_cursor fetch
в local_log_id;
пока loop
log_id_cursor%found
выбирает (local_log_id) в long_desc_length от журналов ГДЕ LOG_ID = local_log_id; вставка
в (case_no, field_size) значения geo_field_count2 (local_log_id, long_desc_length);
поручает; log_id_cursor fetch
в local_log_id; петля конца
; конец
;
/

Error столкнутое после быть успешно на 500.000 добавочных рядках:

SQL> усекает таблицу geo_field_count2;

Table truncated.

SQL> exec geo_count_db_long_size;
BEGIN geo_count_db_long_size; КОНЕЦ;

*
ERROR на линии 1:
ORA-06502: PL/SQL: error
ORA-06512 численного или значения: на «SCOPUS1_APP.FIND_LENGTH2 " , линия 7
ORA-06512: на « SCOPUS1_APP.GEO_COUNT_DB_LONG_SIZE ", линия 19
ORA-06512: на линии



1


SQL> class=

Ответ : Подсчитывающ длину характера длиннего поля - ошибки

да мы можем определенно сделать то но раньше то препятствовало нам добавить отлаживает/сообщениям журнала к Кодему функции также к unerstand линия дает ошибке. Используйте внизу Кодего выполнять испытание снова и давайте меня сообщение журнала, котор вывело наружу вы получаете на экране.

СОЗДАЙТЕ ИЛИ ЗАМЕНИТЕ ПРОЦЕДУРУ GEO_COUNT_DB_LONG_SIZE

log_id_cursor стрелки
  выберите to_char (log_id) от журналов
        где sti_casetype внутри (
                                      выберите sti_casetype
                                            от ford_acs_casetypes
                                            где transition_phase = «DB»
                                            );
  номер local_log_id;
  long_desc_length номер/* (20.0); *
  номер long_desc_length;
  my_err varchar2 (100);
начните
  раскройте log_id_cursor;
  fetch log_id_cursor в local_log_id;
   my_err: = ' после fetch';
          пока log_id_cursor%found
           петля
      my_err: = ' перед звоноком функции для того чтобы получить length';
  выберите find_length3 (local_log_id) в long_desc_length от журналов ГДЕ LOG_ID = local_log_id;
      my_err: = ' после звонока функции для того чтобы получить length';
          вставка в (case_no, field_size) значения geo_field_count2 (local_log_id, long_desc_length);
      my_err: = ' после вставки к другому table';
       поручите;
      fetch log_id_cursor в local_log_id;
   закончите петлю;
исключение когда другие после этого
dbms_output.put_line ('я нахожусь в исключении: '|| my_err);
dbms_output.put_line ('ошибка: '||sqlerrm);
dbms_output.put_line («Кодий ошибки: » || sqlcode);
конец;
/

создайте или замените функцию Find_Length3 (номер geo_log_id)
  возвратите номер

  clob x;
  y длиной;
  my_err varchar2 (100);
начните
  dbms_lob.createtemporary (x, ложные);
my_err: = ' ФУНКЦИЯ: после createtemporary';
  выберите long_desc в y от журналов где log_id = geo_log_id;
my_err: = ' ФУНКЦИЯ: после select';
   x: = to_clob (y);
my_err: = ' ФУНКЦИЯ: после to_clob';
  возвращенное dbms_lob.getlength (x);
my_err: = ' ФУНКЦИЯ: после getlength';
 dbms_lob.freetemporary (x); --> примечание, это не получит исполненным как
-- это после возвращенного заявления.

исключение
  когда другие после этого
dbms_output.put_line ('исключение функции внутренности: '|| my_err);
dbms_output.put_line ('ошибка функции внутренности: '||sqlerrm);
dbms_output.put_line («Кодий ошибки функции внутренности: » || sqlcode);
конец;
/
Другие решения  
  •  Как я добавляю кнопки на форме PDF для того чтобы добавить/извлекаю рядки данных?
  •  Шнур ошибки в блоке задвижки?
  •  сколько вариант сервера SQL на одной машине
  •  Внешний вид 2007 не может архивный файл открытой сети сохраненный
  •  Активно директория DNS записывает вопрос
  •  Отчет о доступа 2010 экспорта к CSV с коллекторами?
  •  Прокладчик OCE 9400 не начинает
  •  как добавить десятичное место в формуле в отчете о кристалла seagate
  •  Windows XP и Мичрософт Оутлоок и проблемы установителя Windows
  •  VB6 к VS2010 - консультации тренировки?
  •  
    programming4us programming4us