2018년 12월 15일 토요일

Create a scott account and sample schema in Oracle 18c


아래 내용으로 demobld.sql 파일을 생성한다.
--
-- Copyright (c) Oracle Corporation 1988, 1999.  All Rights Reserved.
--
--  NAME
--    demobld.sql
--
-- DESCRIPTION
--   This script creates the SQL*Plus demonstration tables in the
--   current schema.  It should be STARTed by each user wishing to
--   access the tables.  To remove the tables use the demodrop.sql
--   script.
--
--  USAGE
--       SQL> START demobld.sql
--
--

SET TERMOUT ON
PROMPT Building demonstration tables.  Please wait.
SET TERMOUT OFF

DROP TABLE EMP;
DROP TABLE DEPT;
DROP TABLE BONUS;
DROP TABLE SALGRADE;
DROP TABLE DUMMY;

CREATE TABLE EMP
       (EMPNO NUMBER(4) NOT NULL,
        ENAME VARCHAR2(10),
        JOB VARCHAR2(9),
        MGR NUMBER(4),
        HIREDATE DATE,
        SAL NUMBER(7, 2),
        COMM NUMBER(7, 2),
        DEPTNO NUMBER(2));

INSERT INTO EMP VALUES
        (7369, 'SMITH',  'CLERK',     7902,
        TO_DATE('17-DEC-1980', 'DD-MON-YYYY'),  800, NULL, 20);
INSERT INTO EMP VALUES
        (7499, 'ALLEN',  'SALESMAN',  7698,
        TO_DATE('20-FEB-1981', 'DD-MON-YYYY'), 1600,  300, 30);
INSERT INTO EMP VALUES
        (7521, 'WARD',   'SALESMAN',  7698,
        TO_DATE('22-FEB-1981', 'DD-MON-YYYY'), 1250,  500, 30);
INSERT INTO EMP VALUES
        (7566, 'JONES',  'MANAGER',   7839,
        TO_DATE('2-APR-1981', 'DD-MON-YYYY'),  2975, NULL, 20);
INSERT INTO EMP VALUES
        (7654, 'MARTIN', 'SALESMAN',  7698,
        TO_DATE('28-SEP-1981', 'DD-MON-YYYY'), 1250, 1400, 30);
INSERT INTO EMP VALUES
        (7698, 'BLAKE',  'MANAGER',   7839,
        TO_DATE('1-MAY-1981', 'DD-MON-YYYY'),  2850, NULL, 30);
INSERT INTO EMP VALUES
        (7782, 'CLARK',  'MANAGER',   7839,
        TO_DATE('9-JUN-1981', 'DD-MON-YYYY'),  2450, NULL, 10);
INSERT INTO EMP VALUES
        (7788, 'SCOTT',  'ANALYST',   7566,
        TO_DATE('09-DEC-1982', 'DD-MON-YYYY'), 3000, NULL, 20);
INSERT INTO EMP VALUES
        (7839, 'KING',   'PRESIDENT', NULL,
        TO_DATE('17-NOV-1981', 'DD-MON-YYYY'), 5000, NULL, 10);
INSERT INTO EMP VALUES
        (7844, 'TURNER', 'SALESMAN',  7698,
        TO_DATE('8-SEP-1981', 'DD-MON-YYYY'),  1500,    0, 30);
INSERT INTO EMP VALUES
        (7876, 'ADAMS',  'CLERK',     7788,
        TO_DATE('12-JAN-1983', 'DD-MON-YYYY'), 1100, NULL, 20);
INSERT INTO EMP VALUES
        (7900, 'JAMES',  'CLERK',     7698,
        TO_DATE('3-DEC-1981', 'DD-MON-YYYY'),   950, NULL, 30);
INSERT INTO EMP VALUES
        (7902, 'FORD',   'ANALYST',   7566,
        TO_DATE('3-DEC-1981', 'DD-MON-YYYY'),  3000, NULL, 20);
INSERT INTO EMP VALUES
        (7934, 'MILLER', 'CLERK',     7782,
        TO_DATE('23-JAN-1982', 'DD-MON-YYYY'), 1300, NULL, 10);

CREATE TABLE DEPT
       (DEPTNO NUMBER(2),
        DNAME VARCHAR2(14),
        LOC VARCHAR2(13) );

INSERT INTO DEPT VALUES (10, 'ACCOUNTING', 'NEW YORK');
INSERT INTO DEPT VALUES (20, 'RESEARCH',   'DALLAS');
INSERT INTO DEPT VALUES (30, 'SALES',      'CHICAGO');
INSERT INTO DEPT VALUES (40, 'OPERATIONS', 'BOSTON');

CREATE TABLE BONUS
        (ENAME VARCHAR2(10),
         JOB   VARCHAR2(9),
         SAL   NUMBER,
         COMM  NUMBER);

CREATE TABLE SALGRADE
        (GRADE NUMBER,
         LOSAL NUMBER,
         HISAL NUMBER);

INSERT INTO SALGRADE VALUES (1,  700, 1200);
INSERT INTO SALGRADE VALUES (2, 1201, 1400);
INSERT INTO SALGRADE VALUES (3, 1401, 2000);
INSERT INTO SALGRADE VALUES (4, 2001, 3000);
INSERT INTO SALGRADE VALUES (5, 3001, 9999);

CREATE TABLE DUMMY
        (DUMMY NUMBER);

INSERT INTO DUMMY VALUES (0);

COMMIT;

SET TERMOUT ON
PROMPT Demonstration table build is complete.
EXIT



위와 같은 오류가 발생 시에는
다음을 수행해 준다.

@demobld.sql이 정상 수행되면
아래 처럼 확인하면 끝!

Solaris time synchronization





간혹 time.bora.net 이 동작을 하지 않을 때가 있는데
이럴 경우에는  # nptdate kr.pool.ntp.org 를 사용해서 시간을 동기화 해준다.

참고로 리눅스에서의 시간 관리는 이전에 작성한 내용을 참조한다.
https://codehexa.blogspot.com/2016/11/linux-rdate-date-hwclock.html

2018년 12월 9일 일요일

Applying jellybean theme Vim on Mac OS X

https://www.vim.org/scripts/script.php?script_id=2555 에서


jellybeans.vim 링크를 선택하여 해당 파일을 다운로드 한뒤

$ sudo mv jellybeans.vim /usr/share/vim/vim80/colors

수행한 뒤

사용자 홈 디렉토리에서 .vimrc파일 생성 후 아래와 같이 작성해 주면 끝

if has("syntax")
    syntax on
endif

set autoindent
set cindent
set smartindent
set ts=4
set shiftwidth=4

colorschem jellybeans




Enable sudo on Mac OS X

Mac OS X 에서 sudo 명령어를 사용하여
시스템에서 사용되는 폴더에 접근하려면 다음과 같이 해줘야 한다.

Mac OS X  부팅전에 command + R 키를 누르고 있으면 복구모드로 들어가게 된다.
복구모드에서 Terminal을 수행 후

$ csrutil disable

재부팅 후에 사용중인 사용자로 로그인 한 후에
 terminal에서

$ csrutil status
System Integrity Protection status: disabled.

위 처럼 메시지가 표시되면 성공!

2018년 12월 8일 토요일

oracle 18c installation sample schema

오라클 설치를 하였으니
테스트용으로 HR 샘플 스키마를 설치한다.

oracle@solaris:~$ sqlplus sys as sysdba

Connected to:
SQL*Plus: Release 18.0.0.0.0 - Production on Sun Dec 2 06:50:10 2018
Version 18.3.0.0.0

Copyright (c) 1982, 2018, Oracle.   All rights reserved.

Enter password:

Connected to:
Oracle Database 18c Enterprise Edtion Release 18.0.0.0.0 - Production
Version 18.3.0.0.0

SQL> alter session set "_ORACLE_SCRIPT"=true;    -- 이걸 안해주면 아래와 같은 오류가 발생한다.

-- ora-20000 schema hr does not exist or insufficient privileges

SQL> @?/demo/schema/human_resources/hr_main.sql

specify password for HR as parameter 1:
Enter value for 1: hr

specify default tablespace for HR as parameter 2:
Enter value for 2: users

specify temporary tablespace for HR as parameter 3:
Enter value for 3: temp

specify log path as parameter 4:
Enter value for 4: $ORACLE_HOME/demo/schema/log/

……

Comment created.

Commit complete.

PL/SQL procedure successfully completed.


SQL>

2018년 12월 1일 토요일

oracle 18c install 관련하여

오랜만에 뜬금없이 solaris 11.4를 설치하고 무얼할까? 고민하다가
oracle 18c를 설치해 보기로 한다.
12c 이후로 참으로 오랜만에 oracle을 설치해본다.

우선은 https://docs.oracle.com/en/database/oracle/oracle-database/18/ssdbi/lot.html 페이지를 스르륵 한번 보는 걸로 시작.


설치하면서 잘 안되는 부분에 대해서만 나중에 잊어버리지 않기 위해 나름대로
정리를 해둔다.

우선  oracle을 설치전에 preinstall 패키지를 설치





oracle 유저 생성
오랜만에 하려니 이것도 옵션이 잘 기억이 나지 않네.


패스워드 설정







파일 다운 받아서 적절한 위치로 옮겨주고 unzip 해준뒤에
runInstaller을 수행한다.


순조롭게 잘 진행이 되다가 swap 관련 오류가 발생

swap 용량 확인 후 좀 늘려줘서 해결하고


아래는 공유 메모리 부족으로 오류 발생

공유 메모리를 좀 더 잡아주니 해결됨

$ dbca 수행 시작!
별 오류없이 순조롭게 잘 진행이 되고
설치는 완료

일단 재부팅을 한번 해주고

.profile 에 다음을 추가

$lsnrctl start를 했는데 뭔가 이상하다.
아래 그림의 아래에서 셋째줄
The listener supports no services


















listener.ora 파일을 수정



정지하고
 시작 하니 된다.


이제 오랜만에 sql 가지고 좀 놀아봐야겠다. ㅋㅋ

리눅스 문자와숫자 조합의 파일이름 정렬( Sort alphanumeric filenames in Linux )

아래 처럼 문자와 숫자가 섞여 있는 파일에 대해서 정렬이 제대로 되지 않을 때 When sorting is not done properly for files with mixed letters and numbers as shown below [codeh...