|
|
|
длиннннее 4000к в external tabel
|
|||
|---|---|---|---|
|
#18+
Уважаемые, подскажите как прочитать csv с текстом больше 4к в external таблицу Я поискал на форуме, но такой ситуации не нашел.... у меня руки связанны, очень мало возможностей кроме как сделать приметивнмую ext table ситуация: У меня csv (формат и содержание файла, изменить никак нельзя; поставщик данных ничего не меняет). Все строчки очень важны. bad file недопустим В файле штук десять колонок. посередине стоит текст который может быть до 20к например. Не часто, попадаются строки с текстовым полем > 4к. Если просто в лоб делать (char 4000) то рекорд падает в помойку, bad file. Текстовое поле мне в принципе и не нужно, а вот остальные 9 нужны. Поэтому хотелось бы рекорд прочитать в таблицу. Меня устроит например 1. 4000 первых позиций длинного поля 2. на крайняк вообще без этого длинного поля. ('перепрыгнуть' его :) ) Лишь бы рекорд полностью не сваливалась в помойку, 9 колонок очень нужны. Если можно то желательно решение без препроцесса, весьма ограниченные возможности на дб (директории или скрипты делать) дб 12.1 os unix большое спасибо, Ром ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2017, 15:28 |
|
||
|
длиннннее 4000к в external tabel
|
|||
|---|---|---|---|
|
#18+
dbmsoutput, А что, CLOBы уже отменили? SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2017, 15:58 |
|
||
|
длиннннее 4000к в external tabel
|
|||
|---|---|---|---|
|
#18+
SYdbmsoutput, А что, CLOBы уже отменили? SY. Не не отменили, я наверно плохо описал ситуацию. только внизу клоб нельзя, а char, varchar не работает и рекорд падает в bad CREATE TABLE VPTGIR.EXT_GIR_HANDHAVEN ( LRK_ID NUMBER, SOORT_VOORZIENING VARCHAR2(100 BYTE), NAAM_VOORZIENING VARCHAR2(100 BYTE), ADRES VARCHAR2(100 BYTE), POSTCODE VARCHAR2(10 BYTE), PLAATS VARCHAR2(100 BYTE), HUIDIGE_STATUS VARCHAR2(100 BYTE), DATUM_STATUS DATE, SOORT_INSPECTIE VARCHAR2(100 BYTE), DATUM_INSPECTIE DATE, DATUM_AFGESLOTEN DATE, TEKORTKOMINGEN_OVERTRED VARCHAR2(1000 BYTE), AANTAL NUMBER, OPSOM_OVERTRED_INSPECTIE VARCHAR2(4000 BYTE), BESLISSING_GEMEENTE VARCHAR2(100 BYTE), BEHANDELAAR VARCHAR2(100 BYTE), HANDHAVING_TRAJECT VARCHAR2(100 BYTE), OPENSTAANDE_OVERTRED VARCHAR2(100 BYTE), opsom_overtred_hndhv_traject <<========= тут можно clob, KVK_HOUDER VARCHAR2(100 BYTE), NAAM_HOUDER VARCHAR2(100 BYTE) ) ORGANIZATION EXTERNAL ( TYPE ORACLE_LOADER DEFAULT DIRECTORY STG_FILE_DUO ACCESS PARAMETERS ( records delimited by "\r" badfile stg_file_duo:'gir_handhaven.bad' discardfile stg_file_duo:'gir_handhaven.dsc' logfile stg_file_duo:'gir_handhaven.log' skip 1 fields terminated by ';' optionally enclosed by '"' missing field values are null reject rows with all null fields ( lrk_id , soort_voorziening , naam_voorziening , adres , postcode , plaats , huidige_status , datum_status date "dd-mm-yyyy" , soort_inspectie , datum_inspectie date "dd-mm-yyyy" , datum_afgesloten date "dd-mm-yyyy" , tekortkomingen_overtred , aantal , opsom_overtred_inspectie char(4000) , beslissing_gemeente , behandelaar , handhaving_traject , openstaande_overtred , opsom_overtred_hndhv_traject <<<<<===больше 4к ====, clob тут нельзя , kvk_houder , naam_houder ) ) LOCATION (STG_FILE_DUO:'gir_handhaven.csv') ) REJECT LIMIT UNLIMITED; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2017, 16:26 |
|
||
|
длиннннее 4000к в external tabel
|
|||
|---|---|---|---|
|
#18+
dbmsoutput, Ну вообще-то можно через COLUMN TRANSFORMS, но я упустил "весьма ограниченные возможности на дб (директории или скрипты делать)". Ну тогдa (если строки файла < 32K) через UTL_FILE. SY. P.S. хотя "препроцесс" то создается один раз, так-что... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2017, 16:55 |
|
||
|
длиннннее 4000к в external tabel
|
|||
|---|---|---|---|
|
#18+
SYчерез UTL_FILE. Ну так-то и через BFILENAME можно - один фиг руками парсить... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2017, 16:57 |
|
||
|
длиннннее 4000к в external tabel
|
|||
|---|---|---|---|
|
#18+
SYdbmsoutput, Ну тогдa (если строки файла < 32K) через UTL_FILE. SY, если не сложно как utl_file здесь прикрутить? Строка меньше 32к А колонку вообще проигнорировать нельзя, насколько я понимаю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2017, 17:00 |
|
||
|
длиннннее 4000к в external tabel
|
|||
|---|---|---|---|
|
#18+
dbmsoutputА колонку вообще проигнорировать нельзя, насколько я понимаю? Да запрoсто: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2017, 17:32 |
|
||
|
длиннннее 4000к в external tabel
|
|||
|---|---|---|---|
|
#18+
А можно и SUBSTRING выдрать (правда тоько начиная с позиции 1): Код: 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. 28. 29. 30. 31. 32. 33. 34. 35. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2017, 17:43 |
|
||
|
длиннннее 4000к в external tabel
|
|||
|---|---|---|---|
|
#18+
Кстати - прекрасно хавает CLOBы непосредственно в файле (во всяком случае на 12.2): Код: 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. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2017, 17:53 |
|
||
|
длиннннее 4000к в external tabel
|
|||
|---|---|---|---|
|
#18+
SY, спасибо буду сейчас пробовать Вариант a-la ваш very_long_column char(200000) у меня не пролез, это первое что я пробовал сам. Рекорд падала в помойку..... дб 12.2 тоже. Сейчас попробую остальные и отпишусь. Большое сэнкс ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2017, 18:29 |
|
||
|
длиннннее 4000к в external tabel
|
|||
|---|---|---|---|
|
#18+
dbmsoutput, Скорее всего у тебя перевод строки внутри полей. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2017, 19:18 |
|
||
|
длиннннее 4000к в external tabel
|
|||
|---|---|---|---|
|
#18+
Хотя нет: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Так-что пoхоже с external table ты пролетаешь (без preprocessor). А с UTL_FILE только разве что через binary read. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2017, 19:48 |
|
||
|
длиннннее 4000к в external tabel
|
|||
|---|---|---|---|
|
#18+
SYdbmsoutput, Скорее всего у тебя перевод строки внутри полей. SY. SY, спасибо.... работает.... просто собственная глупость и слепота :) у меня 2 длинных колонки в таблице. Строчки валились на другой колонке :) (которую не изменил) Column transforms работает прекрасно! закачиваем первые 4к хорошего вечера, Ром ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2017, 20:05 |
|
||
|
длиннннее 4000к в external tabel
|
|||
|---|---|---|---|
|
#18+
dbmsoutput, T.e. 4000к (4m) в названии темы действительности не соответствует и на ограничение "KUP-04020: found record longer than buffer size supported, 524288" - 512k не нарываешься. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2017, 20:32 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39573436&tid=1884691]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
154ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
66ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 475ms |

| 0 / 0 |
