Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / перегруженные функции / 7 сообщений из 7, страница 1 из 1
28.02.2005, 12:40
    #32936208
JustVas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перегруженные функции
есть две перегруженные функции (SP):
- func(val in varchar2)
- func(val in number)
есть DW с полем decimal и обновлением по SP. При попытке обновления вылетает ошибка 'too many declarations of func was found' Как это победить?

1. То же при типе поля char
2. Oracle 9.2
3. Из родного oracle'вого pls/sql все работает
...
Рейтинг: 0 / 0
28.02.2005, 13:51
    #32936416
tru55
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перегруженные функции
В свое время работал со связкой PB7 + Oracle 8.1.7. Столкнулись с тем, что PB неверно передает тип number (ну или Oracle неверно его воспринимает). Победить так и не удалось, обошлись тем, что в PB преобразовывали параметр в строку, а в SQL явно прописывали to_number(Par1).
Попробуй, для начала, закомментарить функцию с varchar2 и проверь, какое значение получает функция с number
...
Рейтинг: 0 / 0
28.02.2005, 14:08
    #32936456
JustVas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перегруженные функции
tru55Попробуй, для начала, закомментарить функцию с varchar2 и проверь, какое значение получает функция с number
По отдельности все работает нормально. Причем, если добавить еще одну функцию с параметром date, то проблем тоже не возникают. Конфликтуют именно number и varchar2
...
Рейтинг: 0 / 0
28.02.2005, 14:31
    #32936520
tru55
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перегруженные функции
Oracle выдает подобное сообщение тогда, когда для него 2 декларации одинаковы, поэтому я и предполагаю неверную передачу типа number (с передачей типов между языками постоянно какие-то заморочки). Попробуй все-таки выяснить, что приходит в Oracle при вызове функции с number (например, с пом. raise_application_error )
...
Рейтинг: 0 / 0
28.02.2005, 14:57
    #32936590
JustVas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перегруженные функции
tru55Попробуй все-таки выяснить, что приходит в Oracle при вызове функции с number (например, с пом. raise_application_error )
как? если бы приходил не number, была бы ошибка wrong type. Также и со строками. Что-то тут странное... Может, тут и не в типах проблема, а в неумении еще работать с пакетами, - недаром в выборе SP для сохранения package обходятся стороной и приходится руками вписывать... В-общем, пока пришлось переименовать эти функции, хотя и некрасиво это :(
...
Рейтинг: 0 / 0
28.02.2005, 15:07
    #32936634
tru55
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перегруженные функции
По поводу неумения работать с пакетами - это сомнительно. Если бы пакетные функции вообще не вызывались - тогда другое дело. А так PB только делает вызов, а какую вызвать из них функцию - решает уже сам Oracle (а он-то это умеет). Поэтому я остаюсь при своем мнении - неверная передача типа number (с передачей строк никогда никаких проблем не было)
...
Рейтинг: 0 / 0
28.02.2005, 15:07
    #32936637
ZiZu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перегруженные функции
Недавно столкнулись с проблемами при работе с SQL_INT64 и Oracle 9.2.0.4. Дето оказалось в том, что целочисленные типы в Oracle не соответствуют ANSI стандарту по размеру. Можешь почитать есть целый tread на сайте у них.
Вдруг с этим связано...
...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / перегруженные функции / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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