|
|
|
перегруженные функции
|
|||
|---|---|---|---|
|
#18+
есть две перегруженные функции (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 все работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2005, 12:40 |
|
||
|
перегруженные функции
|
|||
|---|---|---|---|
|
#18+
В свое время работал со связкой PB7 + Oracle 8.1.7. Столкнулись с тем, что PB неверно передает тип number (ну или Oracle неверно его воспринимает). Победить так и не удалось, обошлись тем, что в PB преобразовывали параметр в строку, а в SQL явно прописывали to_number(Par1). Попробуй, для начала, закомментарить функцию с varchar2 и проверь, какое значение получает функция с number ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2005, 13:51 |
|
||
|
перегруженные функции
|
|||
|---|---|---|---|
|
#18+
tru55Попробуй, для начала, закомментарить функцию с varchar2 и проверь, какое значение получает функция с number По отдельности все работает нормально. Причем, если добавить еще одну функцию с параметром date, то проблем тоже не возникают. Конфликтуют именно number и varchar2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2005, 14:08 |
|
||
|
перегруженные функции
|
|||
|---|---|---|---|
|
#18+
Oracle выдает подобное сообщение тогда, когда для него 2 декларации одинаковы, поэтому я и предполагаю неверную передачу типа number (с передачей типов между языками постоянно какие-то заморочки). Попробуй все-таки выяснить, что приходит в Oracle при вызове функции с number (например, с пом. raise_application_error ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2005, 14:31 |
|
||
|
перегруженные функции
|
|||
|---|---|---|---|
|
#18+
tru55Попробуй все-таки выяснить, что приходит в Oracle при вызове функции с number (например, с пом. raise_application_error ) как? если бы приходил не number, была бы ошибка wrong type. Также и со строками. Что-то тут странное... Может, тут и не в типах проблема, а в неумении еще работать с пакетами, - недаром в выборе SP для сохранения package обходятся стороной и приходится руками вписывать... В-общем, пока пришлось переименовать эти функции, хотя и некрасиво это :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2005, 14:57 |
|
||
|
перегруженные функции
|
|||
|---|---|---|---|
|
#18+
По поводу неумения работать с пакетами - это сомнительно. Если бы пакетные функции вообще не вызывались - тогда другое дело. А так PB только делает вызов, а какую вызвать из них функцию - решает уже сам Oracle (а он-то это умеет). Поэтому я остаюсь при своем мнении - неверная передача типа number (с передачей строк никогда никаких проблем не было) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2005, 15:07 |
|
||
|
перегруженные функции
|
|||
|---|---|---|---|
|
#18+
Недавно столкнулись с проблемами при работе с SQL_INT64 и Oracle 9.2.0.4. Дето оказалось в том, что целочисленные типы в Oracle не соответствуют ANSI стандарту по размеру. Можешь почитать есть целый tread на сайте у них. Вдруг с этим связано... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2005, 15:07 |
|
||
|
|

start [/forum/topic.php?fid=15&fpage=90&tid=1338513]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
52ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
| others: | 246ms |
| total: | 408ms |

| 0 / 0 |
