Zum Inhalt springen

Variabeln in Statements


fly_singapore

Empfohlene Beiträge

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?

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 )


Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 8 Monate später...

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?

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...