Zde příklad konfliktu proměnných. Úplně na konci je příklad konfliktů názvů, který projde.
create table test2
(id integer primary key,
slovo text);
insert into test2 values (100,'test');
create function test2_update(slovo text)
returns void
as
$body$
begin
update test2
set slovo=slovo;
end;
$body$
LANGUAGE plpgsql;
select test2_update('jde se na to');
Výsledek:
ERROR: nejednoznačný odkaz na sloupec "slovo"
LINE 2: set slovo=slovo
^
DETAIL: Identifikátor může odkazovat na proměnnou PL/pgSQL nebo na sloupec v tabulce.
QUERY: update test2
set slovo=slovo
CONTEXT: PL/pgSQL funkce test2_update(text) řádek 3 na SQL příkaz
********** Chyba **********
ERROR: nejednoznačný odkaz na sloupec "slovo"
Stav SQL: 42702
Podrobnosti:Identifikátor může odkazovat na proměnnou PL/pgSQL nebo na sloupec v tabulce.
Kontext:PL/pgSQL funkce test2_update(text) řádek 3 na SQL příkaz
ALE !!!
create function test2_update2(slovo1 text)
returns void
as
$body$
declare
slovo1 text default 'ahoj';
begin
update test2
set slovo=slovo1;
end;
$body$
LANGUAGE plpgsql;
select test2_update2('jde se na to'); -- PROJDE
vysledek :
select * from test2;
100;"ahoj" -- Coz je zmatecne
SQL Developer
Přečteno 31 978×
Přečteno 19 554×
Přečteno 19 507×
Přečteno 17 277×
Přečteno 16 239×