SQL Anywhere unterstützt lokale Variablen. Lokale Variable werden mithilfe der DECLARE-Anweisung definiert, die nur innerhalb einer zusammengesetzten Anweisung (das heißt umgeben von den Schlüsselwörtern BEGIN und END) verwendet werden kann. Für jede DECLARE-Anweisung kann in SQL Anywhere nur eine Variable deklariert werden.
Wenn das DECLARE innerhalb einer zusammengesetzten Anweisung ausgeführt wird, ist der Bereich auf die zusammengesetzte Anweisung begrenzt.
Die Variable wird anfangs auf NULL gesetzt. Der Wert der Variablen kann mithilfe der SET-Anweisung gesetzt oder mithilfe einer SELECT-Anweisung mit einer INTO-Klausel zugewiesen werden.
Dies ist die Syntax der DECLARE-Anweisung:
DECLARE variable-name data-type |
Lokale Variable können als Argumente an Prozeduren übergeben werden, solange die Prozedur innerhalb der zusammengesetzten Anweisung aufgerufen wird.
Der nachstehende Batch veranschaulicht die Verwendung von lokalen Variablen:
BEGIN DECLARE local_var INT; SET local_var = 10; MESSAGE 'local_var = ', local_var TO CLIENT; END |
Wenn dieser Batch von Interactive SQL ausgeführt wird, erzeugt er die Meldung local_var = 10
im Interactive SQL-Register "Meldungen".
Die Variable local_var besteht nicht außerhalb der zusammengesetzten Anweisung, in der sie deklariert ist. Der folgende Batch
ist ungültig und ergibt einen column not found
-Fehler.
-- This batch is invalid. BEGIN DECLARE local_var INT; SET local_var = 10; END; MESSAGE 'local_var = ', local_var TO CLIENT; |
Das folgende Beispiel zeigt die Verwendung von SELECT mit einer INTO-Klausel, um den Wert einer lokalen Variablen zu setzen:
BEGIN DECLARE local_var INT; SELECT 10 INTO local_var; MESSAGE 'local_var = ', local_var TO CLIENT; END |
Wenn dieser Batch von Interactive SQL ausgeführt wird, erzeugt er die Meldung local_var = 10
im Meldungsfenster des Datenbankservers.
Weitere Hinweise zu Batches und lokalen Variablenbereichen finden Sie unter Variable in Transact-SQL-Prozeduren.
Kommentieren Sie diese Seite in DocCommentXchange. Senden Sie uns Feedback über diese Seite via E-Mail. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |