fly_singapore Geschrieben 23. Juli 2008 Teilen Geschrieben 23. Juli 2008 Hallo Allerseits, ich habe mit MSSQL die Schwierigkeit eine vorher definierten Variabel in einen simplen SELECT-Statement zu verarbeiten. Dieser Variablen soll zur Laufzeit ein Tabellennamen zugewiesen werden. Die Variabel soll später Bestandteil der SELECT-Statements sein. Beispiel: -- Deklarieren der Variabel DECLARE @cTabelle -- Zuweisung SET @cTabelle = 'Testtabelle' -- SQL-Statement SELECT * FROM @cTabelle funktioniert leider so nicht, weil es eine Fehlermeldung gibt 'Variabel: @cTabelle nicht deklariert!' Wo liegt der Fehler.. Kann irgendeiner mir helfen? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Byteloser Geschrieben 23. Juli 2008 Teilen Geschrieben 23. Juli 2008 Erstens muss du der Variablen einen Werttyp zuweisen. Zweitens, willst du wahrscheinlich dynamisches SQL betreiben. So wie du es versuchst, wird es nicht funktionieren. Du darfst nicht dynamisches und statisches SQL mischen. versuch's mal mit -- Deklarieren der Variabel DECLARE @cTabelle varchar(25) DECLARE @cSelect varchar(50) -- Zuweisung SET @cTabelle = 'Testtabelle' SET @cSelect = 'Select * From ' + @cTabelle -- SQL-Statement exec(@cSelect ) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
fly_singapore Geschrieben 23. Juli 2008 Autor Teilen Geschrieben 23. Juli 2008 Hallo Byteloser, vielen Dank für die Hilfestellung gruss Peter Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
ten13 Geschrieben 1. April 2009 Teilen Geschrieben 1. April 2009 Hi, also bei mir tritt beim ausführen folgende Fehlermeldung auf: DECLARE @cJahr number(4) DECLARE @cMonat number(2) DECLARE @cSelect varchar(100) SET @cJahr = 2009 SET @cMonat = 3 SET @cSelect = 'Select * from lz_doku where jahr = @cJahr and monat = @cMonat' exec(@cSelect); 11:16:50 [DECLARE - 0 row(s), 0.000 secs] [Error Code: 6550, SQL State: 65000] ORA-06550: Zeile 1, Spalte 9: PLS-00103: Fand das Symbol "@" als eines der folgenden erwartet wurde: begin function package pragma procedure subtype type use <an identifier> <a double-quoted delimited-identifier> form current cursor Das Symbol "@" wurde ignoriert. ORA-06550: Zeile 2, Spalte 1: PLS-00103: Fand das Symbol "DECLARE" als eines der folgenden erwartet wurde: := ; not null default character ... 1 statement(s) executed, 0 row(s) affected, exec/fetch time: 0.000/0.000 sec [0 successful, 0 warnings, 1 errors] Woran kann das liegen? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.