Псевдостолбцы sequence.
NEXTVAL и sequence.
CURRVAL
![Реферат: Псевдостолбцы sequence. NEXTVAL и sequence. CURRVAL](https://gugn.ru/work/6557055/cover.png)
Если перед вставкой новых значений в таблицу нужно выбрать следующий порядковый номер, то для его получения с помощью генератора последовательностей используйте запрос к таблице dual, как показано ниже: После выборки строки можно использовать полученный ROWID в качестве условия для обновления записи служащего, как показано в следующем примере, update emp set salary = 45 000. Как только номер… Читать ещё >
Псевдостолбцы sequence. NEXTVAL и sequence. CURRVAL (реферат, курсовая, диплом, контрольная)
Если перед вставкой новых значений в таблицу нужно выбрать следующий порядковый номер, то для его получения с помощью генератора последовательностей используйте запрос к таблице dual, как показано ниже:
select employee_sequence.nextval from dual;
Как только номер будет выбран, можно проверить последнее выбранное значение с использованием следующего запроса к таблице dual:
select employee_sequence.currval from dual;
Псевдостолбец ROWID
Если прикладная программа должна выбрать данные из таблицы и обновить их позднее, одновременно с выборкой данных необходимо выбрать ROWID из основной таблицы. В дальнейшем при обновлении строки можно повысить производительность, используя ROWID для указания пути доступа к данным. Если к запросу добавлена фраза FOR update, эта строка данных будет заблокирована от любых изменений другими пользователями. Блокировка гарантирует неизменность данных в интервале между выборкой и обновлением. В следующем примере выполняется выборка конкретной записи служащего и блокировка строки данных для обновления:
select rowid, emp _last_name, empjfirst_name, dept_no, salary
from emp
where emp_id = 73
for update;
ROWID EMP_LAST_NAME EMP_FIRST_NAME DEPT_NO SALARY 1 C3A.0007.0002 ZAFIAN JAMES 50 37 500.
После выборки строки можно использовать полученный ROWID в качестве условия для обновления записи служащего, как показано в следующем примере, update emp set salary = 45 000
where rowid = '00001C3A.0007.0002';