Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2009.09.06;
Скачать: [xml.tar.bz2];

Вниз

Длинная строка   Найти похожие ветки 

 
rar   (2008-11-14 08:09) [0]

Такая проблема надо в хранимую процедуру отправить длинную строку 150 000 символов.
В хранимке для входного параметра выбрал тип CLOB, на компоненте ADOStoreProc выбирается по умолчанию DataType =ftInterface, ну и когда подсовываю ему стороку он ругается "Приложение использует для текущей операции значение  неверного типа".

Пробовал ставить тип ftMemo, тип такой устанавливается но тоже ругается, "Ora-01460 затребовано нереализованное или неразумное преобразование"
тип ftOraClob не устанавливается выдается сообщение "Аргументы имеют неверный тип, выходят за пределы допустимого диапазона ...."

Может кто решил эту проблему, буду очень признателен за помощь.
Вариант с разрезанием строки не предлагать, он и так очевиден


 
Сергей М. ©   (2008-11-14 08:29) [1]


> rar   (14.11.08 08:09)  


http://www.sql.ru/forum/actualthread.aspx?tid=199875
см. самый последний пост - видимо, это имеет прямое отношение и к твоей беде


 
rar   (2008-11-14 08:51) [2]


> см. самый последний пост - видимо, это имеет прямое отношение
> и к твоей беде

не получается пока


 
Кщд   (2008-11-14 09:14) [3]

>Вариант с разрезанием строки не предлагать, он и так очевиден
если проект ориентирован на работу исключительно с Oracle, то очевиден вариант со сменой компонент доступа


 
sniknik ©   (2008-11-14 09:38) [4]

> не получается пока
что у тебя "пока не получается"? ты вообще ссылку то открывал, читал, что там в последнем посте написано? каким образом твой "ответ" отвечает на тот пост?

что вообще за идиотская манера вести обсуждение?
его спрашивают "ты идёшь в кино", а он отвечает "спасибо я уже пообедал".
и какая связь?

p.s. имхо. бессмысленная ветка. ничего у него не получится. очевидных слов не понимает, или понимает "по своему".


 
Поросенок Винни-Пух ©   (2008-11-14 09:40) [5]

Может кто решил эту проблему, буду очень признателен за помощь.

ODAC и никаких вопросов и проблем


 
rar   (2008-11-14 10:30) [6]

по ссылке сходил провайдера сменить не могу, возникают другие проблемы


 
rar   (2008-11-14 10:32) [7]

компонентов ODAC тоже нет у нас только лицензионное ПО


 
Сергей М. ©   (2008-11-14 10:33) [8]


> провайдера сменить не могу, возникают другие проблемы


Что за проблемы-то ? Коран запрещает или что ?


 
rar   (2008-11-14 10:36) [9]

все спасибо
а нервным пейте КОРВАЛОЛ, и не наезжайте


 
Anatoly Podgoretsky ©   (2008-11-14 10:54) [10]

> rar  (14.11.2008 10:32:07)  [7]

А кто воровать рекомендовал?


 
Поросенок Винни-Пух ©   (2008-11-14 11:25) [11]

тогда зайди сбоку.
вставь строку в таблицу, верни id записи.
в процедуру передай id


 
rar   (2008-11-14 15:49) [12]

мне не надо эту строку вставлять в таблицу, мне ее надо паропарсить и обработать результат.
Сменил как рекомендовано провайдера MS OLE DB Provider for Oracle на MS OLE DB Provider for Oracle так перестал идти простой запрос

SELECT COUNT(*) CR FROM TableName возвращает 0, хотя в таблице есть записи, ну и длинную строку все равно не съел к сожалению


 
Поросенок Винни-Пух ©   (2008-11-14 16:02) [13]

мне не надо эту строку вставлять в таблицу

вставить строку в таблицу - способ передать строку на сервер библиотеками, не поддерживающими clob.


 
Поросенок Винни-Пух ©   (2008-11-14 16:15) [14]

мне ее надо паропарсить и обработать результат.

для этого не требуется оракл


 
Anatoly Podgoretsky ©   (2008-11-14 16:20) [15]


> MS OLE DB Provider for Oracle на MS OLE DB Provider for Oracle

В чем разница?


 
Поросенок Винни-Пух ©   (2008-11-14 16:34) [16]

слева первый, справа второй


 
Сергей М. ©   (2008-11-14 16:49) [17]


> MS OLE DB Provider for Oracle на MS OLE DB Provider for
> Oracle


Это очепятка ? Или шило на шило поменял ?


> мне ее надо паропарсить и обработать результат


В чем заключается сам парсинг и обработка его результата ?
Почему нельзя выполнить разбор строки на клиенте или на апп-сервере ?

И, стесняюсь спросить, откуда берется строка такого монстрообразного размера ?


 
GRAND ©   (2008-11-14 16:52) [18]


> Сменил как рекомендовано провайдера MS OLE DB Provider for
> Oracle на MS OLE DB Provider for Oracle так перестал идти
> простой запрос


:))) А оно всегда так - как только сменишь какой-нибудь программистский инструмент на что-нибудь, где в названии присутствует "MS", так что-то простое обязательно перестанет идти :)))


 
Anatoly Podgoretsky ©   (2008-11-14 16:56) [19]

Это карма.


 
GRAND ©   (2008-11-14 17:02) [20]

Истинно так!


 
Anatoly Podgoretsky ©   (2008-11-14 19:22) [21]

> GRAND  (14.11.2008 17:02:20)  [20]

Это плохая карма!


 
Petr V. Abramov ©   (2008-11-14 23:38) [22]


> на компоненте ADOStoreProc выбирается по умолчанию


> тип ftOraClob не устанавливается выдается сообщение "Аргументы
> имеют неверный тип, выходят за пределы допустимого диапазона
> ...."

выкинь ADO, поставь DOA или ODAC.
ADO мы не лечим


 
rar   (2008-11-17 08:18) [23]

Извиняюсь за опечатку, провайдера поменял на Oracle Provider for OLE DB.
Ну и полезли всякие тараканы, в общем проблема не решилась.
По поводу длинной строки, откуда она взялась.
Стоит задача  обработки данных в ORACLE но исходные данные находятся в ACCESS. Программа трехзвенка, обработка на среднем звене.
ДА ODBC на БД отсутствует, и пока еще дрова не скоро купят.
Пробовал обработку провести на среднем звене, но приходится обработку делать перебором, занимает много времени около 3 минут. Пробовал забросить данные в ORACLE используя пакетную передачуу, но пакет передается около 1 минуты, что тоже очень долго. Сейчас передаю данные строками по 32767 байт, загрузка таблицы происходит менее 4 секунд.
Но строк передаю 5 штук. Вот и хотелось передать одной строкой.
Может у кого есть еще решения. как забросить таблицу в ORACLE. Буду благодарен.


 
Кщд   (2008-11-17 08:50) [24]

>Может у кого есть еще решения. как забросить таблицу в ORACLE. Буду благодарен.
использовать sqlloader
либо механизм внешних таблиц, на нем основанный


 
sniknik ©   (2008-11-17 11:25) [25]

> Стоит задача  обработки данных в ORACLE но исходные данные находятся в ACCESS.
что за идиотские ограничения, почему именно в оракле? задача это обработка данных, а уж где это будет происходить, методы и средства выбирает программист.
постановщику "задачи"  голову отвернуть...

> Сейчас передаю данные строками по 32767 байт, загрузка таблицы происходит менее 4 секунд.
а время на разворачивание этой строки в табличную форму для обработки учитываешь? и время на предварительное "сворачивание"?
почему учитывается только передача, а не весь цикл с обработкой? вся обработка состоит только в том чтобы впихнуть эти данные в оракл, неважно в какой форме, а последующая работа с этими данными планируется? судя по всему нет. а раз так то просто ничего не делать, в передаче вызвать пустую процедуру... время будет 0 секунд.


 
rar   (2008-11-17 11:39) [26]

В Oracle все основные таблицы, и они по 100 000 записей и тащить их куда либо не имеет смысла. Там в хранимке вся обработка и происходит. Вся загвозда во времени выполнения в этом я ограничен


 
MsGuns ©   (2008-11-17 11:41) [27]

>GRAND ©   (14.11.08 17:02) [20]
>Истинно так!

Паранойя ?


 
Сергей М. ©   (2008-11-17 11:54) [28]


> Там в хранимке вся обработка и происходит. Вся загвозда
> во времени выполнения


Ну и какой тогда резон тащить данные на обработку в Оракл, если известно, что ХП сделает это заведомо медленней чем апп-сервер ?


> приходится обработку делать перебором


Это как ?


 
Anatoly Podgoretsky ©   (2008-11-17 12:14) [29]

> sniknik  (17.11.2008 11:25:25)  [25]

Лучше оторвать, больнее будет.


 
sniknik ©   (2008-11-17 12:27) [30]

> В Oracle все основные таблицы, и они по 100 000 записей и тащить их куда либо не имеет смысла.
каким боком они участвуют в "обработке"? данные из них сравниваются/вычисляются в паре с полученными из аксесса? тогда нужны объединения, индексы, т.е. данные с обоих сторон должны быть в структурированной (табличной) форме. а ты из них делаешь строку, после очень быстро передаешь, и начинаешь парсить и делать опять таблицу (?), для того чтобы можно было обрабатывать в паре с основными...
ты уж как то определись, либо они не участвуют, и тогда постановка задачи идиотская, либо участвуют и тогда время нужно считать в общем, а не только среднюю часть от всего т.е. загрузку.
какой смысл в передаче пусть даже за 0,000001 сек, если данные от такой передачи придётся обрабатывать час?

> Лучше оторвать, больнее будет.
договорились.


 
sniknik ©   (2008-11-17 12:30) [31]

> Это как ?
это тайна великая есть... ибо Это показывать стыдно. ;о))))


 
rar   (2008-11-17 12:43) [32]

Всем спасибо за опсуждение :-)



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2009.09.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.53 MB
Время: 0.009 c
4-1216237260
batya-x
2008-07-16 23:41
2009.09.06
буфер обмена


15-1247208288
Внук
2009-07-10 10:44
2009.09.06
Пятничная задачка


1-1213532081
Student
2008-06-15 16:14
2009.09.06
Свободная память + TStringGrid


15-1246528418
DelphiN!
2009-07-02 13:53
2009.09.06
Определить замыкание 2х ножек com порта


15-1246653405
Knight
2009-07-04 00:36
2009.09.06
Downloader-ы...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский