Sie können gespeicherte Prozeduren in Embedded SQL erstellen und aufrufen.
Eine CREATE PROCEDURE-Anweisung kann wie jede andere Datendefinitions-Anweisung, z.B. CREATE TABLE, eingebettet werden. Sie können auch eine CALL-Anweisung einbetten, um eine gespeicherte Prozedur auszuführen. Das folgende Code-Fragment veranschaulicht das Erstellen und Ausführen einer gespeicherten Prozedur in Embedded SQL
EXEC SQL CREATE PROCEDURE pettycash( IN Amount DECIMAL(10,2) ) BEGIN UPDATE account SET balance = balance - Amount WHERE name = 'bank'; UPDATE account SET balance = balance + Amount WHERE name = 'pettycash expense'; END; EXEC SQL CALL pettycash( 10.72 ); |
Wenn Sie Werte von Hostvariablen an eine gespeicherte Prozedur übergeben oder die Ausgabevariablen abrufen möchten, bereiten Sie eine CALL-Anweisung vor und führen Sie sie aus. Das folgende Code-Fragment veranschaulicht die Verwendung von Hostvariablen. Sowohl die USING als auch die INTO-Klausel werden in der EXECUTE-Anweisung benutzt.
EXEC SQL BEGIN DECLARE SECTION; double hv_expense; double hv_balance; EXEC SQL END DECLARE SECTION; hv_expense = 20.00; db_init( &sqlca ); EXEC SQL CONNECT USING 'UID=DBA;PWD=sql'; EXEC SQL CREATE OR REPLACE PROCEDURE pettycash( IN expense DECIMAL(10,2), OUT endbalance DECIMAL(10,2) ) BEGIN UPDATE account SET balance = balance - expense WHERE name = 'bank'; UPDATE account SET balance = balance + expense WHERE name = 'pettycash expense'; SET endbalance = ( SELECT balance FROM account WHERE name = 'bank' ); END; EXEC SQL PREPARE S1 FROM 'CALL pettycash( ?, ? )'; EXEC SQL EXECUTE S1 USING :hv_expense INTO :hv_balance; |
Gespeicherte Prozeduren mit Ergebnismengen
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2013, SAP AG oder ein SAP-Konzernunternehmen. - SAP Sybase SQL Anywhere 16.0 |