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?
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 )
fly_singapore Geschrieben 23. Juli 2008 Autor Geschrieben 23. Juli 2008 Hallo Byteloser, vielen Dank für die Hilfestellung gruss Peter
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?
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden