Portál AbcLinuxu, 10. května 2025 23:12
CREATE OR REPLACE FUNCTION pozadavek(IN _zid integer, _msg text) RETURNS text AS $$
DECLARE _key varchar(35);
DECLARE _out texty%rowtype;
BEGIN
INSERT INTO pozadavek (zakaznik, obsah) VALUES (_zid, _msg);
SELECT INTO _key jazyk FROM zakaznik WHERE id = _zid;
SELECT INTO _out * FROM texty WHERE klic = 'pozadavek';
RETURN _out;
END;
$$ LANGUAGE plpgsql;
problem je ze bych chtel napsat
SELECT INTO _out _key FROM texty WHERE klic = 'pozadavek';
tabulka texty ma sloupce cz, en, ... takze bych chtel pomoci promenne volit z jakeho sloupce pujdou data vubec nevim co s tim... RETURN _out[_key] nejde...
INTO musite dat pryc z toho selectu, je soucasti prikazu EXECUTE
EXECUTE 'SELECT ' || quote_literal(_key) || 'FROM texty WHERE klic = "klic..."' INTO _out;
Jinak uz je pozde na zmenu navrhu DB....
O tom pochybuji. Jestli to necháte takto, budete s tím mít čím dál víc problémů. Nemluvě o tom, že při tom vašem návrhu stejně budete muset změnit strukturu databáze, jakmile se objeví nový jazyk.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.