Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Можно ли в качестве параметра передать функции имя таблицы? / 5 сообщений из 5, страница 1 из 1
07.12.2009, 08:23
    #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
07.12.2009, 09:06
    #36351178
Alexey Kuznetsov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли в качестве параметра передать функции имя таблицы?
Павел Гужанов,

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


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