Dynamiczny SQL

Autor: Marcin Kasiński
21.01.2011 13:24:00 +0200

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
Zachęcam do przedstawienia swoich uwag i opinii w polu komentarzy.

Komentarze

Dodaj Komentarz