Oracle Невозможно сохранить данные - PullRequest
2 голосов
/ 10 апреля 2020

У меня установлена ​​oracle база данных в моей системе

Я обращаюсь к ней через командную строку.

win+r > cmd > sqlplus

Я создал пользователя

system

и

password system

Я создал таблицу

create table users ( username varchar(20));

Вставлено несколько записей.

insert into users (username ) values ('user1');
insert into users (username ) values ('user2');

затем я выхожу

>exit

Проблема в том, что, когда я пытаюсь войти снова.

стол все еще там. Но данные, которые я вставил, пропали.

select * from users;

ВЫХОД

no rows selected

1 Ответ

2 голосов
/ 10 апреля 2020

SQL* Плюс имеет возможность автоматической фиксации:

SET AUTO[COMMIT]{ON | OFF | IMM[EDIATE] | n}

Из документации :

  • ВКЛ коммитов ожидающие изменения в базе данных после Oracle База данных выполняет каждый успешный блок INSERT, UPDATE или DELETE или PL / SQL.
  • OFF подавляет автоматическую фиксацию c, поэтому вы должны фиксировать изменения вручную.
  • SET AUTOCOMMIT не изменяет поведение фиксации при выходе из SQL* Plus. Любые незафиксированные данные фиксируются по умолчанию.

Чтобы управлять фиксацией на EXIT, необходимо установить параметр EXITCOMMIT в SQL* Плюс:

SQL> show exitcommit
exitcommit ON
SQL> set exitcommit off

Если значение et равно OFF, тогда вам нужно явно COMMIT после оператора вставки, который является транзакцией DML. Создать таблицу - это оператор DDL, который выполняет неявную фиксацию.

insert into users (username ) values ('user1');
insert into users (username ) values ('user2');
COMMIT; --> add this

Я создал пользовательскую систему

SYSTEM - это административная учетная запись пользователя, которая автоматически создается при установке Oracle базы данных. Он предназначен для задач администрирования, а не для хранения данных приложения и т. Д. c. Создайте отдельного пользователя для своего приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...