1

Temat: Dynamiczny SQL

Witajcie wszyscy, to mój pierwszy post na tym forum.

Chciałbym dowiedzieć się jak najwięcej o dynamiczny sql, ale po przeszukaniu dosyć dokładnie Internetu, nie uzyskałem dobrze skomentowanych w miarę prostych przykładów wykorzystania. Dlatego postanowiłem napisać tutaj, bo może są wśród Was ludzie, którzy natchnęli się na ciekawe informacje na ten temat i chcieliby podzielić się linkami.

Poprawcie mnie jeśli źle rozumiem, ale czy to nie jest tak, że dynamiczny sql to po prostu polecenia sql wykonywane w ramach skryptów pl/sql w postgresie?

Dzięki za wszystkie sugestie
pozdrawiam
Gabryś

Ostatnio edytowany przez filip11 (2011-09-10 08:13:49)

2

Odp: Dynamiczny SQL

CREATE OR REPLACE FUNCTION dynamicCreate(int) RETURNS void
AS $BODY$
DECLARE
    _sql text;
    _columnName text;
    i integer;
BEGIN
    DROP TABLE IF EXISTS dynamicTable;
    _sql := 'Create Table dynamicTable (';
    FOR i IN 1..$1 LOOP
        SELECT INTO _columnName array_to_string(ARRAY(SELECT chr((97 + round(random() * 25))::integer) FROM generate_series(1,5)), '');
        _sql := _sql || _columnName || ' text';
        IF i <> $1 THEN
            _sql := _sql || ',';
        END IF;
    END LOOP;
    _sql := _sql || ')';
    RAISE NOTICE '%', _sql;
    EXECUTE _sql;
    RETURN;
END;
$BODY$ LANGUAGE plpgsql;

Ostatnio edytowany przez gszpetkowski (2011-09-10 16:05:56)

3

Odp: Dynamiczny SQL

super, bardzo dziękuję za tą odpowiedź, na pewno się zapoznam z nią oraz z podaną książką smile