Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
CURSOR из файла
|
|||
|---|---|---|---|
|
#18+
Добрий день, Извените за наивный вопрос: Возможно ли, каким нибудь образом организаовать цикл по данним из файла ( например csv), средствами DB2 без исползования импорта во временую таблицу или процедур на других языках ну что то типа: begin for cur as -- здесь выбор из файла do ............................... end for; end@ Прошу не бить. Зарание спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2011, 12:58 |
|
||
|
CURSOR из файла
|
|||
|---|---|---|---|
|
#18+
Сам руками не пробовал, но наверное правильный путь - через data source - ftp://public.dhe.ibm.com/ps/products/db2/info/vr82/pdf/en_US/iiylse81.pdf, 21-я глава. Удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2011, 11:08 |
|
||
|
CURSOR из файла
|
|||
|---|---|---|---|
|
#18+
CawaSPb, Спасибо это было бы то что нужно, но к сожалению: get database manager configuration@ ................. Federated Database System Support (FEDERATED) = NO .................... а у меня нет прав на изменения: update dbm cfg using FEDERATED YES@ Category Timestamp Duration Message Line Position Error 10/20/2011 10:50:01.2056 AM 0:00:00.203 DB2 Database Error: ERROR [] [IBM][DB2/SUN64] SQL5001N does not have the authority to change the database manager configuration file. Тлеет надежда, может есть ешё другие варианты, идеии? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2011, 13:04 |
|
||
|
CURSOR из файла
|
|||
|---|---|---|---|
|
#18+
mbrg, А если просто программку написать (например на С++ или Delphi) - читаешь в цикле плоский файл и выполняешь dynamic SQL...с нужными параметрами... а? For i:=1 to 10000 do begin For j:=1 to FRTTR do begin SQLSTR:='INSERT INTO SCHEMA.TABLE VALUES( 1, '+IntToStr(I)+', '+IntToStr(J)+', 4,'+Y1+' )'; Query1.SQL.Clear; QueryTest1.SQL.Add(SQLSTR); QueryTest1.ExecSQL; end; end; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2011, 21:51 |
|
||
|
CURSOR из файла
|
|||
|---|---|---|---|
|
#18+
не понимаю почему всё должно буть в процедуре? чтобы переносить в другую систему? плоские файлы тоже? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2011, 23:33 |
|
||
|
CURSOR из файла
|
|||
|---|---|---|---|
|
#18+
knudsen, Добрий вечер, ситуация такая, в базе есть несколько различных процедур с разными входными параметрами, обычно они вызываютя из програмы на , это нормальный режим. Но иногда после каких то збоев нужно вызвать какуюто из этих процедур вручную, причем значения присылают из другого отдела как файл. Например бракованые детали нужно удалить из базы это делает процедура p1(id) в другой раз детали нужно переименовать вызывается процедура p2(id1,id2), возможны и другие варианты. Поэтому в виде : begin for as select id -- iz file do call p1(id); end for; end@ а в следующий раз: begin for as select id1, id2 -- iz file do call p2(id1,id2); end for; end@ мне кажется было бы удобно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2011, 02:28 |
|
||
|
CURSOR из файла
|
|||
|---|---|---|---|
|
#18+
sadsad_at_tomsk, Добрый день, извеняюсь что раньше не известил, к сожалению у меня 9.5 она похоже ещё не знает что такое UTL_FILE . Datenbank-Server = DB2/SUN64 9.5.8 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2011, 18:07 |
|
||
|
CURSOR из файла
|
|||
|---|---|---|---|
|
#18+
mbrg, Надо определиться зачем именно нам нужна возможность организации цикла. Если это просто небольшой syntax sugar, то по-моему тут овчинка выделки не стоит. Ну, можно external table function написать, если хочется; нужно будет CSV парсить самостоятельно, но тут дело нехитрое (главное ошибки в формате аккуратно отработать). Если приходящий CSV у нас реально большой, мы не хотим его сами сначала целиком читать, и нам важна скорость, то тут LOAD с последующей работой со временной таблицей будет, наверное, лучшим решением. Если же CSV очень-очень-очень большой, и хочется организовать что-то вроде потока из данных, а база не federated (или имеющийся враппер нас чем-то не устраивает), то можно создать отдельный процесс (запускающийся по заданному событию в базе), читающий указанный CSV с соответствующей буферизацией и отдающий одну или N строк соответствующей самописной table function (процесс, читающий CSV, может запускаться по факту первого вызова этой функции). sadsad_at_tomsk, UTL_FILE - хорошо, но парсить полученную строку кроме тривиальных случаев будет ой как неудобно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2011, 15:05 |
|
||
|
CURSOR из файла
|
|||
|---|---|---|---|
|
#18+
CawaSPb, Добрый день, спасибо за активное участие в обсуждении. Я делаю сейчас при помощи импорта: IMPORT FROM "path\lookup.del" OF DEL METHOD P (2,1) MESSAGES "path\lookup_imp_del.log" INSERT INTO (SNL_VARIANTE,SNL_SACHNR); потом цикл по TMP_TAB все работает. програмку на JAVA например тоже нет проблем написать. С external table function, как передать ей файл? если через пути к файлу, где он будет его искать на сервере или на клиенте откуда вызывается функция? и если функция "LANGUAGE SQL" возвращаемся к изначальному вопросу как средствами базы прочитать файл. Мне казалось что должно быть что то подходящее о чем я не знаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2011, 14:07 |
|
||
|
CURSOR из файла
|
|||
|---|---|---|---|
|
#18+
mbrg, Имя файла - параметром. Выполняться это будет соответственно на сервере, но ничто не мешает имени файла быть сетевым (да хоть по http его забирать). Но опять таки надо определиться, зачем нам всё это нужно. Скорость важна или файл крошечный? Имеет смысл "огород городить"? Подходящее - то, что умеет в принципе CSV распознавать. Это как раз IMPORT/LOAD и соответствующий враппер. Остальное - инструменты для своих решений, коих в данном случае может быть много. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2011, 15:08 |
|
||
|
CURSOR из файла
|
|||
|---|---|---|---|
|
#18+
CawaSPb, Файлы не больше чем 1000 строк. Скорость при такой "ручной" обработке не важна. 2-3 раза в неделю. Просто присылают эти файлы в отдел поддержки, а им с import'ом и temporary table кажется очень сложным, просят каждый раз помочь. Думал помочь им более простым, не многошаговым решением штатными средствами. А свои решения, так нужно ещо с админами договариваться, разрешения получать, и.т.д, свои сложности. Видно не судьба. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2011, 16:05 |
|
||
|
|

start [/forum/topic.php?fid=43&msg=37493637&tid=1602054]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
72ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 284ms |
| total: | 450ms |

| 0 / 0 |
