C/C++ / CGI / Sieć Novell / PHP / Java / SQL / Oracle / WebSphere MQ / WebSphere Message Broker / JavaScript / Humor / IT Quiz

Dynamiczny SQL

Do wykonywania dynamicznych instrukcji SQL wykorzystywane jest wyrażenie EXECUTE IMMEDIATE.

Przykład:

EXECUTE IMMEDIATE 'create table tab1(id NUMBER)';

Przykład:

query:='create table :name (id NUMBER)';
tabname:='tab1';
EXECUTE IMMEDIATE query USING tabname;


W powyższym przykładzie do zmiennej przypisaliśmy łańcuch, w którym zamiast :name spodziewamy się zmiennej dynamicznej podanej podczas wywoływania wyrażenia EXECUTE IMMEDIATE zaraz za słowem USING. Ważne jest, że zapytanie może mieć więcej dynamicznych zmiennych. W takiej sytuacji pod pierwszy argument zapytania zostanie podstawiona pierwsza zmienna znajdująca się po klauzuli USING. Pod drugi argument zostanie podstawiona druga zmienna itd.

Przykład:

query:='grant :right ON :object TO :trustee';
right:='INSERT';
object:='table1';
trustee:='user8';
EXECUTE IMMEDIATE query USING right, object, trustee;

Przykład:

query:='update tab1 set col1=100 where col2=:1 RETURNING col2 INTO :2';
EXECUTE IMMEDIATE query USING value1 RETURNING value2;



Powrót


  Autorem serwisu jest Marcin Kasiński
Wszelkie prawa zastrzeżone. All rights reserved.
powered by technology... linux eclipse java php