Der folgende Beitrag wurde am 27. 02. 2007, 15:14 Uhr von karlheinz veröffentlicht.
Hi,
ich erzeuge in einer procedure eine view:
CREATE PROCEDURE foo(x INT)
BEGIN
create view name as select * FROM tabelle where spalte = x;
END;
mit einem konstanten wert für x ist das kein problem, wenn ich aber variablen in der view verwende, bekomme ich folgende fehlermeldung:
View's SELECT contains a variable or parameter
sind variablen grundsätzlich in views nicht erlaubt? wenn ja, wäre das aber sehr nachteilig.
gruß
karlheinz
Der folgende Beitrag wurde am 27. 02. 2007, 15:19 Uhr von King^Lully veröffentlicht.
> sind variablen grundsätzlich in views nicht erlaubt? wenn ja, wäre das aber sehr nachteilig.
Es besteht eventuell in MySQL die Möglichkeit einen String (VARCHAR(x)) zusammenzubasteln und diesen dann auszuführen, als ob er ein normales SQL-Statement darstellt.
Der folgende Beitrag wurde am 27. 02. 2007, 15:28 Uhr von karlheinz veröffentlicht.
> Es besteht eventuell in MySQL die Möglichkeit einen String (VARCHAR(x)) zusammenzubasteln und diesen dann auszuführen, als ob er ein normales SQL-Statement darstellt.
und den string dann in die where-klausel setzen? der string wird/muss zwangsläufig in einer variable abgespeichert werden, damit ich den string auch an anderer stelle verwenden kann. oder wie hast du das gemeint? bin nicht ganz schlau aus deiner antwort geworden
Der folgende Beitrag wurde am 27. 02. 2007, 15:36 Uhr von King^Lully veröffentlicht.
> > Es besteht eventuell in MySQL die Möglichkeit einen String (VARCHAR(x)) zusammenzubasteln und diesen dann auszuführen, als ob er ein normales SQL-Statement darstellt.
>
> und den string dann in die where-klausel setzen?
Den String ausführen (@Var='SELECT * FROM DT_1'; EXEC @VAR;), also ggf. inkl. WHERE-Klausel, Moment, wir gehen mal in die Doku, ...
Ne, sorry, nichts in der Doku gefunden.
Der folgende Beitrag wurde am 27. 02. 2007, 16:35 Uhr von ZinTor veröffentlicht.
Hallo,
> Den String ausführen (@Var='SELECT * FROM DT_1'; EXEC @VAR;), also ggf. inkl. WHERE-Klausel, Moment, wir gehen mal in die Doku, ...
>
> Ne, sorry, nichts in der Doku gefunden.
ich habe selbiges Problem. Habe es wie King^Lully mittels execute probiert, "exec" habe ich in der Doku jetzt nicht gefunden...
procedure()
begin
declare var int;
PREPARE stmt1 from 'create view blabla... where spalte = var';
EXECUTE stmt1;
end;
-> ERROR 1351 (HY000): View's SELECT contains a variable or parameter
ganz schön ärgerlich wenn Variablen innerhalb einer View nicht verwendet werden können...
Der folgende Beitrag wurde am 27. 02. 2007, 16:53 Uhr von Ilja veröffentlicht.
yo,
> ganz schön ärgerlich wenn Variablen innerhalb einer View nicht verwendet werden können...
was spricht den dagegen, die view mit einer where klausel aufzurufen also:
select spalte1, spalte2..
from view_name
where spaltex = wert
Ilja
Der folgende Beitrag wurde am 27. 02. 2007, 17:00 Uhr von ZinTor veröffentlicht.
Hallo,
> was spricht den dagegen, die view mit einer where klausel aufzurufen also:
>
> select spalte1, spalte2..
> from view_name
> where spaltex = wert
>
> Ilja
gar nichts! Problem ist, erzeuge eine View in der eine Where-Klausel vorkommt die Variablen enthält => is nit weil geht nit :)
© 1998-2013 SELFHTMLImpressumSoftware: Classic Forum 3.4