Funkcja z =?ISO-8859-2?Q?tabel=B1_jako_parametrem_?=
Replay - 24-05-2006 00:17
Funkcja z =?ISO-8859-2?Q?tabel=B1_jako_parametrem_?=
Witam!
Czy jest możliwe utworzenie funkcji/procedury która jako parametr przyjmie nazwę tabeli i wykona na tej podanej tabeli zwyklego select'a np: selext * from :dbname ?
Czy jest to możliwe w MSSQL albo w POSTGRESQL?
Maciej.
Bartek Siebab - 24-05-2006 00:18
> Replay w dniu 2006-05-23 20:10 pisze: > Witam! > > Czy jest możliwe utworzenie funkcji/procedury która jako parametr > przyjmie nazwę tabeli i wykona na tej podanej tabeli zwyklego select'a > np: selext * from :dbname ? > > Czy jest to możliwe w MSSQL albo w POSTGRESQL?
Na PostgreSQL w funkcji jak najbardziej. konstruujesz stringa tego selekta z parametrem przekazanym na wejściu do funkcji i wykonujesz exec...
-- ..---------- -------- ------ ---- ---- --- - -- - | Bartek `saphire` Siebab http://bartek.siebab.net
Marcin A. Guzowski - 24-05-2006 00:18
Bartek Siebab napisał(a): > > Replay w dniu 2006-05-23 20:10 pisze: >> Witam! >> >> Czy jest możliwe utworzenie funkcji/procedury która jako parametr >> przyjmie nazwę tabeli i wykona na tej podanej tabeli zwyklego select'a >> np: selext * from :dbname ? >> >> Czy jest to możliwe w MSSQL albo w POSTGRESQL? > > Na PostgreSQL w funkcji jak najbardziej. > konstruujesz stringa tego selekta z parametrem przekazanym > na wejściu do funkcji i wykonujesz exec...
I w MSSQLu jest możliwość - dynamiczny SQL: DECLARE @sql NVARCHAR(1000) SET @sql = N'SELECT * FROM '+@tabela_z_wejscia_procedury EXEC sp_executesql @sql
Należy jednak uważać z dynamicznym SQLem, bo w tym przypadku wygoda jest kosztem bezpieczeństwa. Absolutne minimum to gruntowna walidacja wszystkiego, co będzie wykonane jako kod SQL (w przykładzie: @tabela).
-- Pozdrawiam, Marcin Guzowski
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
Wydajność baz danych w zależności od poziomu izolacji ANSI/ISO
Czy zna (obsługuje) ktoś program Iso Draw ?
MYSQL - kodowanie w ISO-PL
strona plus baza w iso do utf-8
Kodowanie: z iso na utf
Konwesja znaków w dump'ie bazy danych - ISO -> utf-8 -> ISO -> utf-8
=?iso-8859-2?q?Co_oznacza_b=B3=B1d_Warning:_mysql=5Fconnect() _[function.mysql-connect]:_Can't_connect_to_local_MySQL_server_through_sock et_'/var/run/mysqld/mysqld.sock'_(2)_in?=
=?iso-8859-2?q?Ati_Mobility_Radeon_X300_W_Notebooku_Jak_Zwi=E Akszy=E6_Ilo=B6=E6_Grafiki_Poprzez_Wsp=F3=B3dziele nie_Z_Ramu=3F=3F=3F?=
=?ISO-8859-2?Q?=AFegnam_si=EA=2E=2E=2E?=
Manager =?ISO-8859-2?Q?font=F3w=2E=2E=2E?=
zanotowane.pldoc.pisz.plpdf.pisz.planette.xlx.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|