Oracle
 sql >> база данни >  >> RDS >> Oracle

Вмъкване и актуализиране на базата на записи в Oracle

Можете също да използвате записи, които се основават на %ROWTYPE декларации срещу таблицата, към която са направени вмъкването и актуализирането, или върху изричен запис TYPE, който е съвместим със структурата на таблицата.

Пример за вмъкване на базата на запис:

ДЕКЛАРИРАЙТЕ
my_book books%ROWTYPE;
BEGIN
my_book.isbn :='1-123456-123-1';
my_book.title :='Fox Infotech Blogs';
my_book.summary :='Примери за лисица';
my_book.author :='V. Kapoor';
my_book.page_count :=300;
INSERT INTO books VALUES my_book;
END;
/
Забележете, че не включвате скоби около спецификатора на записа . Ако използвате този формат:

INSERT INTO books VALUES (my_book); -- Със скоби, НЕВАЛИДНО!

тогава ще получите изключение ORA-00947:не е достатъчно стойности, тъй като програмата очаква отделен израз за всяка колона в таблицата.

Пример за актуализация на базата на запис:

Можете също да извършвате актуализации на цял ред, като използвате запис. Следният пример актуализира ред в таблицата с книги със запис %ROWTYPE. Забележете, че използвам ключовата дума ROW, за да покажа, че актуализирам целия ред със запис:

ДЕКЛАРИРАЙТЕ
my_book books%ROWTYPE;
BEGIN
my_book.isbn :='1-123456-123-1';
my_book.title :='Fox Infotech Blogs';
my_book.summary :='Примери за лисица';
my_book.author :='V. Капур';
my_book.page_count :=300;

АКТУАЛИЗИРАНЕ на книги
ЗАДАДЕТЕ РЕД =my_book
WHERE isbn =my_book.isbn;
END;
/
Има някои ограничения за актуализации, базирани на записи:

Трябва да актуализирате цял ред със синтаксиса ROW. Не можете да актуализирате подмножество от колони (въпреки че това може да се поддържа в бъдещи версии). Всички полета, чиито стойности са оставени NULL, ще доведат до стойност NULL, присвоена на съответната колона.
Не можете да извършите актуализация с помощта на подзаявка.
И в случай, че се чудите, не можете да създадете колона на таблицата, наречена ROW.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. как да използвате XMLImporter и FndXdfCmp в Oracle EBS

  2. 12c Автоматично попълване на колона със стойност на последователността

  3. Как да пусна таблица в oracle

  4. Защо EXECUTE IMMEDIATE е необходимо тук?

  5. Тип на Java за дата/час, когато използвате Oracle Date с Hibernate