powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Вопрос по ODCINUMBERLIST
16 сообщений из 16, страница 1 из 1
Вопрос по ODCINUMBERLIST
    #39725821
ultrasonic7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте! Как правильно организовать цикл по ODCINUMBERLIST? Гуглил, но интересующая информация не была найдена.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
DECLARE
  NUMS SYS.ODCINUMBERLIST;
BEGIN
  SELECT DISTINCT DOC_ID INTO DOC_NUMS FROM SCHEMA.TABLE;
  FOR I IN NUMS.FIRST .. NUMS.LAST LOOP
    BEGIN
      SCHEMA.PACKAGE.PROC(NUMS(I));
    EXCEPTION 
      WHEN OTHERS THEN dbms_output.put_line(DBMS_UTILITY.FORMAT_ERROR_BACKTRACE);
    END;
  END LOOP;
END;
...
Рейтинг: 0 / 0
Вопрос по ODCINUMBERLIST
    #39725826
ultrasonic7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так тоже ошибка:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
DECLARE
  NUMS SYS.ODCINUMBERLIST;
BEGIN
  SELECT DISTINCT DOC_ID BULK COLLECT INTO DOC_NUMS FROM SCHEMA.TABLE;
  FOR I IN NUMS.FIRST .. NUMS.LAST LOOP
    BEGIN
      SCHEMA.PACKAGE.PROC(NUMS(I));
    EXCEPTION 
      WHEN OTHERS THEN dbms_output.put_line(DBMS_UTILITY.FORMAT_ERROR_BACKTRACE);
    END;
  END LOOP;
END;
...
Рейтинг: 0 / 0
Вопрос по ODCINUMBERLIST
    #39725860
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ultrasonic7Так тоже ошибка:


Ошибку то огласи.

SY.
...
Рейтинг: 0 / 0
Вопрос по ODCINUMBERLIST
    #39725864
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SYultrasonic7Так тоже ошибка:


Ошибку то огласи.

SY.

A

Код: plsql
1.
2.
3.
4.
DECLARE
  NUMS SYS.ODCINUMBERLIST;
BEGIN
  SELECT DISTINCT DOC_ID BULK COLLECT INTO DOC_NUMS FROM SCHEMA.TABLE;



не смущает?

SY.
...
Рейтинг: 0 / 0
Вопрос по ODCINUMBERLIST
    #39725866
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ultrasonic7,

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
  1  DECLARE
  2    NUMS SYS.ODCINUMBERLIST;
  3  BEGIN
  4    SELECT empno BULK COLLECT INTO NUMS FROM emp;
  5    FOR I IN NUMS.FIRST .. NUMS.LAST LOOP
  6        dbms_output.put_line(nums(i));
  7    END LOOP;
  8* END;
SQL> /
7369
7499
7521
7566
7654
7698
7782
7788
7839
7844
7876
7900
7902
7934

PL/SQL procedure successfully completed.



......
stax
...
Рейтинг: 0 / 0
Вопрос по ODCINUMBERLIST
    #39725872
ultrasonic7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
DECLARE
  DOC_NUMS SYS.ODCINUMBERLIST;
BEGIN
  SELECT DISTINCT DOC_ID BULK COLLECT INTO DOC_NUMS FROM SCHEMA_NAME.TABLE_NAME;
  FOR I IN DOC_NUMS.FIRST .. DOC_NUMS.LAST LOOP
    BEGIN
      SCHEMA_NAME.PACKAGE_NAME.PROC_NAME(DOC_NUMS(I));
    EXCEPTION 
      WHEN OTHERS THEN dbms_output.put_line(DBMS_UTILITY.FORMAT_ERROR_BACKTRACE);
    END;
  END LOOP;
END;



сообщение компилятора[Warning] ORA-24344: компиляция завершилась с ошибками
7/7 PLS-00306: ошибочно число или типы аргументов при обращении к 'PROC_NAME'
7/7 PL/SQL: Statement ignored
(43: 0): Warning: compiled but with compilation errors
...
Рейтинг: 0 / 0
Вопрос по ODCINUMBERLIST
    #39725881
K790
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ultrasonic7,

и что на входе в твою PROC_NAME?
...
Рейтинг: 0 / 0
Вопрос по ODCINUMBERLIST
    #39725882
ultrasonic7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SY,
Вот и ошибка, собственно.
...
Рейтинг: 0 / 0
Вопрос по ODCINUMBERLIST
    #39725886
ultrasonic7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
K790ultrasonic7,

и что на входе в твою PROC_NAME?

В этом и вопрос. Как передать в PROC_NAME значения из DOC_NUMS ?
...
Рейтинг: 0 / 0
Вопрос по ODCINUMBERLIST
    #39725889
K790
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ultrasonic7,

что в спецификации твоей PROC_NAME?
...
Рейтинг: 0 / 0
Вопрос по ODCINUMBERLIST
    #39725894
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ultrasonic7В этом и вопрос. Как передать в PROC_NAME значения из DOC_NUMS ?
как Вы передаете в PROC_NAME константу (напр 7)?


ps
desc PACKAGE
......
stax
...
Рейтинг: 0 / 0
Вопрос по ODCINUMBERLIST
    #39725912
ultrasonic7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нашел ошибку.
Процедура ведь как в пакете объявлена:
Код: plsql
1.
2.
3.
4.
5.
CREATE OR REPLACE PACKAGE SCHEMA_NAME.PACKAGE_NAME IS

  PROCEDURE PROC_NAME(iDocNums IN SYS.ODCINUMBERLIST);

END;



Соответственно, надо вызывать так:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
DECLARE
  DOC_NUMS SYS.ODCINUMBERLIST;
BEGIN
  SELECT DISTINCT DOC_ID BULK COLLECT INTO DOC_NUMS FROM SCHEMA_NAME.TABLE_NAME;
  FOR I IN DOC_NUMS.FIRST .. DOC_NUMS.LAST LOOP
    BEGIN
      SCHEMA_NAME.PACKAGE_NAME.PROC_NAME(DOC_NUMS);
    EXCEPTION 
      WHEN OTHERS THEN dbms_output.put_line(DBMS_UTILITY.FORMAT_ERROR_BACKTRACE);
    END;
  END LOOP;
END;


Немного внимательность подкачала.
...
Рейтинг: 0 / 0
Вопрос по ODCINUMBERLIST
    #39725918
K790
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ultrasonic7Соответственно, не надо вызывать так:
...
Рейтинг: 0 / 0
Вопрос по ODCINUMBERLIST
    #39725921
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ultrasonic7Нашел ошибку.
Процедура ведь как в пакете объявлена:
Код: plsql
1.
2.
3.
4.
5.
CREATE OR REPLACE PACKAGE SCHEMA_NAME.PACKAGE_NAME IS

  PROCEDURE PROC_NAME(iDocNums IN SYS.ODCINUMBERLIST);

END;



Соответственно, надо вызывать так:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
DECLARE
  DOC_NUMS SYS.ODCINUMBERLIST;
BEGIN
  SELECT DISTINCT DOC_ID BULK COLLECT INTO DOC_NUMS FROM SCHEMA_NAME.TABLE_NAME;
--  FOR I IN DOC_NUMS.FIRST .. DOC_NUMS.LAST LOOP
--    BEGIN
      SCHEMA_NAME.PACKAGE_NAME.PROC_NAME(DOC_NUMS);
    EXCEPTION 
      WHEN OTHERS THEN dbms_output.put_line(DBMS_UTILITY.FORMAT_ERROR_BACKTRACE);
                  RAISE;
--    END;
--  END LOOP;
END;
...
Рейтинг: 0 / 0
Вопрос по ODCINUMBERLIST
    #39725922
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ultrasonic7Нашел ошибку.
Процедура ведь как в пакете объявлена:
Код: plsql
1.
2.
3.
4.
5.
CREATE OR REPLACE PACKAGE SCHEMA_NAME.PACKAGE_NAME IS

  PROCEDURE PROC_NAME(iDocNums IN SYS.ODCINUMBERLIST);

END;



Соответственно, надо вызывать так:



цикл лишний

.....
stax
...
Рейтинг: 0 / 0
Вопрос по ODCINUMBERLIST
    #39726251
ultrasonic7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
andrey_anonymous, Stax,
Да, всё верно, цикл здесь не нужен. Что-то затупил я сегодня)). Спасибо, что подсказали правильный вариант.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Вопрос по ODCINUMBERLIST
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]