Oracle FAQ – часто задаваемые вопросы по Oracle


Вопрос: Как удалить много строк из большой таблицы?
Решение:
Ask Tom "Deleting many rows from a big table"
Oracle delete performance tips

Вопрос: Как перестроить индекс?
Решение:
ALTER INDEX EXAMPLE.SYS_C1234567 REBUILD;

Question: How to execute a .sql file in sqlplus?
Answer:
sqlplus
set sqlblanklines on;
set echo off;
set heading off;
set termout off;
@/home/abbas/dump.sql

Вопрос: Как загрузить данные в таблицу через SQL*Loader?
Решение:
nano loader.ctl 
options (bindsize=100000, silent=(feedback, errors) ) 
load data
 infile '~/example-input.csv'
 into table EXAMPLE_USER.EXAMPLE_TABLE
 fields terminated by "," optionally enclosed by '"'             
 ( EXAMPLE_COLUMN )
sqlldr SYSTEM/PASSWORD control=loader.ctl 

Вопрос: Как узнать версию Oracle Database?
Ответ:
select * from v$version where banner like 'Oracle%';

Вопрос: Как делать импорт и экспорт?
Ответ:
imp USERID=system/xxxx FROMUSER=aaa TOUSER=bbb  LOG=import.log  FEEDBACK=10
  • FEEDBACK=10 периодически отображать прогресс через каждые 10 импортированных строк 
  • LOG=import.log лог файл
Ссылки:

Вопрос: Как создать первичный ключ (PRIMARY KEY)?
Ответ:
CREATE SEQUENCE TABLE_NAME_SEQ START WITH 1 INCREMENT BY 1 NOMAXVALUE;

ALTER TABLE TABLE_NAME ADD ( "ID_COL_NAME" NUMBER(19) NULL  ) ;
UPDATE TABLE_NAME SET "ID_COL_NAME"=TABLE_NAME_SEQ.NEXTVAL ;
ALTER TABLE TABLE_NAME MODIFY ( "ID_COL_NAME" NUMBER(19) NOT NULL  ) ;
ALTER TABLE TABLE_NAME ADD PRIMARY KEY ("ID_COL_NAME");

CREATE TRIGGER TABLE_NAME_TRIGGER BEFORE INSERT ON TABLE_NAME
FOR EACH ROW BEGIN
SELECT TABLE_NAME_SEQ.NEXTVAL INTO :NEW.ID FROM DUAL;
END;
/

Ссылки:

Вопрос: Как просмотреть constraints?
Ответ:
select * from USER_CONSTRAINTS where CONSTRAINT_TYPE='R' order by TABLE_NAME
Показать все constraints типа Referential AKA Foreign Key
Другие типы constraints:
Type Code;Type Description;Acts On Level
C;Check on a table;Column
O;Read Only on a view;Object
P;Primary Key;Object
R;Referential AKA Foreign Key;Column
U;Unique Key;Column
V;Check Option on a view;Object

CONSTRAINT_TYPE (из док 11gR2)
C - Check constraint on a table
P - Primary key
U - Unique key
R - Referential integrity
V - With check option, on a view
O - With read only, on a view
H - Hash expression
F - Constraint that involves a REF column
S - Supplemental logging


Вопрос: Как удалить constraints?
Ответ:

Вопрос: Как войти в SQLPlus под админом?
Ответ:
sqlplus "sys as sysdba"

Вопрос: Что означают ошибки ORA-00604 и ORA-12705?
ORA-00604: error occurred at recursive SQL level 1
ORA-12705: Cannot access NLS data files or invalid environment specified
Решение:
Причин может быть много. Например по пути C:\Program Files\Java\jdk1.6.0_33\jre\lib\ext\ разместили лишние файлы ojdbc6_g.jar и ojdbc6.jar.

To be continued...