Гость
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Вызов функции БД oracle / 7 сообщений из 7, страница 1 из 1
26.09.2012, 12:41
    #37972751
царевич
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов функции БД oracle
Всем привет!
PB 9.0. БД Oracle
В объекте транзакций, в локальных функциях описываю RPC функции БД.
Указываю имена и тип параметров. При вызове функции БД передатся ли в нее имена параметров? Тоесть параметры в БД передаются по именам или по очередности? И если не по именам то как сделать именно по именам?Только через динамический sql?

спасибо.
...
Рейтинг: 0 / 0
26.09.2012, 12:55
    #37972777
tru55
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов функции БД oracle
Уже не помню, можно ли в PB передавать по именам, но с точки зрения Oracle это выглядит так:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
PROCEDURE proc1(par1 ..., par2 ..., par3...)


BEGIN
  proc1(val1, val2, val3);  -- это позиционная подстановка параметров
END;


BEGIN
  proc1(par1 => val1,  par3 => val3,  par2 => val2);  -- это именованная подстановка параметров 
END;
...
Рейтинг: 0 / 0
26.09.2012, 13:07
    #37972793
царевич
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов функции БД oracle
Вот и хотел узнать как из PB подставлять параметры по именам, т.к. в функциях БД очень много параметров не обязательных.
...
Рейтинг: 0 / 0
26.09.2012, 13:46
    #37972861
tru55
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов функции БД oracle
По хорошему, необязательные параметры лучше располагать в конце. Тогда можно обойтись позиционной передачей:
Код: plsql
1.
2.
3.
4.
5.
6.
PROCEDURE proc1(par1 IN number, par2  IN number, par3  IN number, par4  IN number DEFAULT 1, par4  IN number DEFAULT 0);


BEGIN
  proc1(val1, val2, val3);
END;
...
Рейтинг: 0 / 0
26.09.2012, 14:16
    #37972900
царевич
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов функции БД oracle
tru55,

Вот как раз мне и надо указать последний необязательный параметр функции. Для этого нужно перечислить все что есть, а есть очень много(
...
Рейтинг: 0 / 0
26.09.2012, 14:54
    #37972979
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов функции БД oracle
царевич,

Насколько я понимаю, RPCFUNC - это только позиционые агрументы, поскольку там стандартный синтаксис объявления функции PB, а он не поддерживает именованные агрументы.

Но и динамический SQL тоже не обязателен.
См. здесь пример 2
...
Рейтинг: 0 / 0
26.09.2012, 18:49
    #37973365
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов функции БД oracle
Анатолий прав, в данном случае - никак
Если только перенести параметры в конец или использовать динамический вызов
...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Вызов функции БД oracle / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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