|
|
|
заполнение коллекции по DBLINK
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Столкнулся с интересным фактом, просьба помочь разобраться! Вкратце, читаю данные из удаленной БД(Oracle 11g) по dbllink, данные помещаю в коллекцию(Nested table), но данные из таблицы считываются не полностью, всегда не больше 100 если использовать LIMIT, без него все хорошо... В таблице test_r 1000 rows, после заливки данных в коллекцию, с использованием LIMIT - T_COL.count= 60, без использования - T_COL.count=1000) Обзорно, последовательность действий такова: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2017, 08:39 |
|
||
|
заполнение коллекции по DBLINK
|
|||
|---|---|---|---|
|
#18+
wellvkпоследовательностьпоменять, loop и open - не? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2017, 08:50 |
|
||
|
заполнение коллекции по DBLINK
|
|||
|---|---|---|---|
|
#18+
wellvkпросьба помочь разобраться!Руки/голова. wellvkОбзорно, последовательность действий такова: Код: plsql 1. 2. Врёшь. wellvk Код: plsql 1. Бесполезняк. wellvk Код: plsql 1. Условие выхода неправильное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2017, 08:50 |
|
||
|
заполнение коллекции по DBLINK
|
|||
|---|---|---|---|
|
#18+
ma1tus, опечатка, делал без проверки, естественно, с начало open, затем цикл... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2017, 08:55 |
|
||
|
заполнение коллекции по DBLINK
|
|||
|---|---|---|---|
|
#18+
Врёшь. wellvk Код: plsql 1. что не так? wellvk Код: plsql 1. Условие выхода неправильное. T_COL.count<100 результат тот же. Что упустил? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2017, 09:02 |
|
||
|
заполнение коллекции по DBLINK
|
|||
|---|---|---|---|
|
#18+
wellvkрезультат тот же.Таки голова. Каждую порцию данных нужно обрабатывать внутри цикла, а не последнюю за ним. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2017, 09:06 |
|
||
|
заполнение коллекции по DBLINK
|
|||
|---|---|---|---|
|
#18+
wellvkчто не так?удали и сравни. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2017, 09:08 |
|
||
|
заполнение коллекции по DBLINK
|
|||
|---|---|---|---|
|
#18+
wellvk[/src] что не так? wellvk Код: plsql 1. Условие выхода неправильное. T_COL.count<100 результат тот же. Что упустил?[/quot] http://www.oracle.com/technetwork/issue-archive/2008/08-mar/o28plsql-095155.html Код: 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. 26. 27. авторSo, to make sure that your query processes all 227 rows, replace this statement: EXIT WHEN table_with_227_rows_cur%NOTFOUND; with EXIT WHEN l_table_with_227_rows.COUNT = 0; ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2017, 09:49 |
|
||
|
заполнение коллекции по DBLINK
|
|||
|---|---|---|---|
|
#18+
Elicwellvkчто не так?удали и сравни. Удалил, сравнил... Что говорит по этому вопросу ман Nested Tables в частности: An uninitialized nested table variable is a null collection. You must initialize it, either by making it empty or by assigning a non-NULL value to it ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2017, 10:09 |
|
||
|
заполнение коллекции по DBLINK
|
|||
|---|---|---|---|
|
#18+
Stax http://www.oracle.com/technetwork/issue-archive/2008/08-mar/o28plsql-095155.html Ферштейн ламер. В приведенном тобой примере employees_cur%notfound сработает точно так же, как l_employees.COUNT < limit_in. Хотя, может в 9i оно работало по другому... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2017, 10:13 |
|
||
|
заполнение коллекции по DBLINK
|
|||
|---|---|---|---|
|
#18+
Elicwellvkрезультат тот же.Таки голова. Каждую порцию данных нужно обрабатывать внутри цикла, а не последнюю за ним. Зачем мне обрабатывать внутри цикла- я заполняю просто коллекцию...Bulk collect на то и дан) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2017, 10:14 |
|
||
|
заполнение коллекции по DBLINK
|
|||
|---|---|---|---|
|
#18+
тогда ты чайникStax http://www.oracle.com/technetwork/issue-archive/2008/08-mar/o28plsql-095155.html Ферштейн ламер. В приведенном тобой примере employees_cur%notfound сработает точно так же, как l_employees.COUNT < limit_in. Хотя, может в 9i оно работало по другому... авторThe collection is always filled sequentially, starting from index value 1. It is always safe (that is, you will never raise a NO_DATA_FOUND exception) to iterate through a collection from 1 to collection .COUNT when it has been filled with BULK COLLECT. The collection is empty when no rows are fetched. Always check the contents of the collection (with the COUNT method) to see if there are more rows to process. Ignore the values returned by the cursor attributes, especially %NOTFOUND. авторКолекція завжди заповнюється послідовно, починаючи з значення індексу 1. Це завжди безпечно (тобто ви ніколи не піднімете виключення NO_DATA_FOUND), щоб ітерації через колекцію від 1 до колекції .COUNT, коли вона була заповнена BULK COLLECT. Колекція порожня, коли не знайдено жодного рядка. Завжди перевіряйте вміст колекції (за допомогою методу COUNT), щоб перевірити, чи для обробки є більше рядків. Ігнорувати значення, що повертаються атрибутами курсору, особливо% NOTFOUND. ps exit when v_cur%notfound; имеет право на жизнь, зависит как/где обрабытывается результат bulk wellvk не показал как он ето делает pss в старой доке был баг .... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2017, 10:25 |
|
||
|
заполнение коллекции по DBLINK
|
|||
|---|---|---|---|
|
#18+
Staxтогда ты чайникпропущено... Ферштейн ламер. В приведенном тобой примере employees_cur%notfound сработает точно так же, как l_employees.COUNT < limit_in. Хотя, может в 9i оно работало по другому... авторThe collection is always filled sequentially, starting from index value 1. It is always safe (that is, you will never raise a NO_DATA_FOUND exception) to iterate through a collection from 1 to collection .COUNT when it has been filled with BULK COLLECT. The collection is empty when no rows are fetched. Always check the contents of the collection (with the COUNT method) to see if there are more rows to process. Ignore the values returned by the cursor attributes, especially %NOTFOUND. авторКолекція завжди заповнюється послідовно, починаючи з значення індексу 1. Це завжди безпечно (тобто ви ніколи не піднімете виключення NO_DATA_FOUND), щоб ітерації через колекцію від 1 до колекції .COUNT, коли вона була заповнена BULK COLLECT. Колекція порожня, коли не знайдено жодного рядка. Завжди перевіряйте вміст колекції (за допомогою методу COUNT), щоб перевірити, чи для обробки є більше рядків. Ігнорувати значення, що повертаються атрибутами курсору, особливо% NOTFOUND. ps exit when v_cur%notfound; имеет право на жизнь, зависит как/где обрабытывается результат bulk wellvk не показал как он ето делает pss в старой доке был баг .... stax Шановний, прочитайте умова, як використовується колекція, в принципі, не важливо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2017, 10:42 |
|
||
|
заполнение коллекции по DBLINK
|
|||
|---|---|---|---|
|
#18+
wellvkBulk collect wellvkя заполняюфетчите, и теряете прежний набор, с каждым следующим... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2017, 10:56 |
|
||
|
заполнение коллекции по DBLINK
|
|||
|---|---|---|---|
|
#18+
wellvkЗачем мне обрабатывать внутри цикла- я заполняю просто коллекцию...Bulk collect на то и дан)Ты ламер, не понимающий, для чего нужен LIMIT. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2017, 11:12 |
|
||
|
заполнение коллекции по DBLINK
|
|||
|---|---|---|---|
|
#18+
wellvkШановний, прочитайте умова, як використовується колекція, в принципі, не важливо. не понял, что значит не важно Как используется? вернее в каком месте обзорного кода? .... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2017, 11:36 |
|
||
|
заполнение коллекции по DBLINK
|
|||
|---|---|---|---|
|
#18+
ElicwellvkЗачем мне обрабатывать внутри цикла- я заполняю просто коллекцию...Bulk collect на то и дан)Ты ламер, не понимающий, для чего нужен LIMIT. Скорее не LIMIT а концепт BULK COLLECT...сам себя в трех соснах запутал...все спасибо за помощь) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2017, 06:35 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39558015&tid=1884857]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
140ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 230ms |
| total: | 466ms |

| 0 / 0 |
