Where Current Of

توضیحات

اگر بخواهیم رکوردی که با دستور select for update ، lock شده است را update یا delete کنیم باید از دستور where current of استفاده کنیم.

دستور

دستور where current of را این‌گونه می‌توان استفاده کرد:

۱۲۳۴۵۶ UPDATE table_name  SET set_clause  WHERE CURRENT OF cursor_name; DELETE FROM table_nameWHERE CURRENT OF cursor_name;

مثال

مثال‌هایی از استفاده where current of:

۱۲۳۴۵۶۷۸۹۱۰۱۱۱۲۱۳۱۴۱۵۱۶۱۷۱۸۱۹۲۰۲۱۲۲۲۳۲۴۲۵۲۶۲۷۲۸۲۹۳۰۳۱۳۲۳۳۳۴۳۵۳۶۳۷۳۸۳۹۴۰۴۱۴۲۴۳۴۴۴۵۴۶۴۷۴۸۴۹۵۰۵۱۵۲۵۳۵۴۵۵۵۶۵۷۵۸۵۹۶۰۶۱۶۲۶۳۶۴۶۵۶۶۶۷۶۸۶۹۷۰۷۱ CREATE OR REPLACE Function FindCourse   ( name_in IN varchar۲ )   RETURN numberIS   cnumber number;    CURSOR c۱   IS     SELECT course_number     FROM courses_tbl     WHERE course_name = name_in     FOR UPDATE of instructor; BEGIN    OPEN c۱;   FETCH c۱ INTO cnumber;    if c۱%notfound then      cnumber := ۹۹۹۹;    else      UPDATE courses_tbl        SET instructor = \'SMITH\'        WHERE CURRENT OF c۱;       COMMIT;    end if;    CLOSE c۱; RETURN cnumber; END;  CREATE OR REPLACE Function FindCourse   ( name_in IN varchar۲ )   RETURN numberIS   cnumber number;    CURSOR c۱   IS     SELECT course_number     from courses_tbl     where course_name = name_in     FOR UPDATE of instructor; BEGIN    open c۱;   fetch c۱ into cnumber;    if c۱%notfound then      cnumber := ۹۹۹۹;    else      DELETE FROM courses_tbl        WHERE CURRENT OF c۱;       COMMIT;    end if;    close c۱; RETURN cnumber; END;
Categories: Data
X