powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Можно ли в качестве параметра передать функции имя таблицы?
5 сообщений из 5, страница 1 из 1
Можно ли в качестве параметра передать функции имя таблицы?
    #36351134
Павел Гужанов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте.

Можно ли сделать вот такое:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
CREATE FUNCTION F1(TABLENAME VARCHAR( 16 ))
.........

begin
select * from tablename.......
....................

end;

И потом обратиться к ней так:

Код: plaintext
Select * from f1('temp.table1');

Если такое возможно, то подскажите, как это реализовать?
...
Рейтинг: 0 / 0
Можно ли в качестве параметра передать функции имя таблицы?
    #36351178
Alexey Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Павел Гужанов,

поиск по этому форуму динамический sql :)
...
Рейтинг: 0 / 0
Можно ли в качестве параметра передать функции имя таблицы?
    #36351264
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Павел ГужановМожно ли сделать вот такое:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
CREATE FUNCTION F1(TABLENAME VARCHAR( 16 ))
.........

begin
select * from tablename.......
....................

end;

И потом обратиться к ней так:

Код: plaintext
Select * from f1('temp.table1');

Если такое возможно, то подскажите, как это реализовать?Здравствуйте.
Динамический sql поддерживается в скалярных sql ф-циях, начиная с v9.7.
Иначе вам придётся использовать ф-ции на внешнем языке программирования, например c или java.
...
Рейтинг: 0 / 0
Можно ли в качестве параметра передать функции имя таблицы?
    #36351284
Павел Гужанов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня как раз 9.7.

поиском по форуму я нашел что-то похожее, но там везде расматривается только select в функции. А если мне в функции надо делать еще и insert или update в этой таблице?

там есть такой пример

Код: plaintext
1.
2.
3.
4.
DECLARE v_dynSQL varchar( 600 );
declare c cursor with return for s1;
SET v_dynSQL = 'select ' || colName || ' from ' || tableName;
PREPARE s1 FROM v_dynSQL;
OPEN c;

Тут все понятно. А вот как сделать с апдейтом или инсертом?
...
Рейтинг: 0 / 0
Можно ли в качестве параметра передать функции имя таблицы?
    #36351587
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Павел ГужановТут все понятно. А вот как сделать с апдейтом или инсертом?Если я правильно понял, то у вас табличная функция, а не скаларная.
Это значит, что динамический sql, если это возможно, надо будет убрать в вызовы хранимых процедур внутри функции.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Можно ли в качестве параметра передать функции имя таблицы?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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