fly_singapore Geschrieben 23. Juli 2008 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
Byteloser Geschrieben 23. Juli 2008 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
fly_singapore Geschrieben 23. Juli 2008 Autor Geschrieben 23. Juli 2008 Hallo Byteloser, vielen Dank für die Hilfestellung gruss Peter Zitieren
ten13 Geschrieben 1. April 2009 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
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.