Skip to content

Instantly share code, notes, and snippets.

@m-sedl
Created November 4, 2022 22:25
Show Gist options
  • Save m-sedl/03066b5cb589232cd29d3b69193532c6 to your computer and use it in GitHub Desktop.
Save m-sedl/03066b5cb589232cd29d3b69193532c6 to your computer and use it in GitHub Desktop.
dbsm hw 5
  1. Сначала создаём пользователя STUDENT_DB, даём ему нужные права
  2. Подключаемся к БД под STUDENT_DB, создаём нужные таблицы
  3. Кладём csv и ctl файлы в контейнер. Я для простоты запихнул их в каталог, который прокидывал в контейнер в предыдущей домашке
  4. Запускаем команды docker exec, в табличках должны появиться данные
--- run from DEVELOPER user
drop user STUDENT_DB;
create user STUDENT_DB identified by STUDENT_DB;
grant connect, resource to STUDENT_DB;
ALTER USER STUDENT_DB quota unlimited on USERS;
LOAD DATA
CHARACTERSET UTF8
INFILE 'FACULTIES.CSV'
BADFILE 'FACULTIES.bad'
DISCARDFILE 'FACULTIES.dsc'
TRUNCATE
INTO TABLE STUDENT_DB.faculty
FIELDS TERMINATED BY ';'
TRAILING NULLCOLS
(
faculty_letter,
faculty_name_ru,
faculty_name_en
)
docker exec -ti testdb sqlldr STUDENT_DB/STUDENT_DB@//localhost:1521/XEPDB1 control=/opt/oracle/oradata/loads/FACULTIES.ctl data=/opt/oracle/oradata/loads/FACULTIES.CSV
docker exec -ti testdb sqlldr STUDENT_DB/STUDENT_DB@//localhost:1521/XEPDB1 control=/opt/oracle/oradata/loads/STUDENTS.ctl data=/opt/oracle/oradata/loads/STUDENTS.CSV
--- run from STUDENT_DB user
create table faculty
(faculty_letter VARCHAR2(1) PRIMARY KEY, faculty_name_ru VARCHAR2(200), faculty_name_en VARCHAR2(200));
create table student
(student_id number PRIMARY KEY, group_code VARCHAR2(50));
OPTIONS (SKIP=1)
LOAD DATA
CHARACTERSET UTF8
INFILE 'STUDNETS.CSV'
BADFILE 'STUDNETS.bad'
DISCARDFILE 'STUDNETS.dsc'
TRUNCATE
INTO TABLE STUDENT_DB.student
FIELDS TERMINATED BY ';'
TRAILING NULLCOLS
(
group_code,
student_id
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment