비밀번호가 맞았는데도 로그인 되지 않는다면 / the password has expired


안녕하세요.
고코더 입니다.


 1. 오라클을 신나게 설치하였고 권한도 주었지만
테스트 계정인 scott으로 로그인을 할때 이런 메세지가 뜰 것입니다. 
ORA-28001 : the password has expired


 2. scott은 사용하기 전에 로그인 후에 비밀번호를 변경해줘야 합니다. 
참고로 scott의 기본 비번은 tiger 입니다. 저는 비밀번호를 다시 tiger로 만들어주었네요.
sqlplus 
scott
비밀번호 입력


마무리


개발 학습중인 분들은 여기서 많이 막히더군요


댓글을 달아 주세요


DUAL 테이블에 대해 알아보자


안녕하세요.
고코더 입니다.


지난 시간에 DUAL을 이용해 테이블 없을시에 select 를 작성하는 방법을 알아봤는데요

-> Oracle에서 from(테이블) 없이 select 질의 / Dual


 1. 이 DUAL에 대해 궁금해 하는 분이 계셔서 추가로 글을 남깁니다. 오라클을 설치하면 기본 테이블이 주어집니다. 대표적인게 DEPT 인데요. DUAL은 테이블 리스트에 포함되어 있지 않습니다. 

 2. 그 이유는 바로 이 테이블은 SYS 소유이기 때문입니다. SYSTEM에서 기본으로 만들어놓은 테이블이지만
모든 사용자에게 권한을 주어서 내가 만든 테이블 처럼 조회가 가능합니다.

 3. 해당 dual 테이블을 조회 해보면 DUMMY 라는 컬럼에 X라는 단순한 데이터만 담겨 있습니다. 나는 임시테이블이라고 밝히고 있네요. 컬럼 구조도 VARCHAR2(1)입니다. 최소한의 자원으로 만들어진 임시 테이블입니다.



사용법 사례


이전 시간에 select 만으로 데이터를 조회하고 싶을때 dual을 이용한거 처럼특별한 from에 담을 게 없을때 사용하는 용도 입니다.

 4. 만약에 내장 함수를 출력하고 싶을때도 사용합니다.

1
2
SELECT SYSDATE FROM DUAL;
SELECT SYSTIMESTAMP FROM DUAL
cs


 5. 계산식을 출력해보고 싶을때도 사용이 가능합니다. (계산기 쓰면 되죠)

1
SELECT (10+10)/2 FROM DUAL;
cs


 6. 저는 강의를 주로 하니 테이블만들기전에 임시 데이터를 만들때도 사용합니다.

1
2
3
4
5
6
7
SELECT * from  (
    SELECT 'GoCoder' AS Name FROM dual
    union all
    SELECT 'Gocoder.Tistory.com' AS Blog FROM dual
    union all
    SELECT 'GoCoder.net' AS HomePage FROM dual
)
cs




DUAL이란 정리


- VARCHAR2(1)로 DUMM컬럼으로 만들어진 임시 테이블이다
- SYS소유이고 모든 사용자가 엑세스 할 수게 되어 있다
- 오라클 설치와 동시에 만들어진다.
- 이 테이블을 이용해 원하는 select 를 테이블 없이 실행 가능하다.


마무리



댓글을 달아 주세요


dual 테이블을 이용해 임의 값을 select 하세요.


안녕하세요. 
고코더 입니다. 

 1. 데이터베이스에서 select 만으로도 결과 값을 조회가 가능합니다. 저는 보통 이런 from 없는 셀렉트 쿼리는 데이터베이스 접속 테스트를 위해 사용합니다. mysql 에서 해당 sql을 질의해보면 

1
select 'gocoder.net' as gocoder;
cs



 2. mysql이나 MSSQL에서는 테이블 없이 조회 값을 만들어 낼 수 있습니다. 

 3. 하지만 오라클에서는 이러한 select만 있는 쿼리는 지원하지 않습니다.
같은 쿼리를 날릴때 오류 메세지 입니다. 
ORA-00923: FROM 키워드가 필요한 위치에 없습니다.
00923. 00000 -  "FROM keyword not found where expected"

 4. 그런 경우 from 절에 dual을 넣어주면 됩니다. dual은 오라클에서 제공하는 임시용 테스트 테이블입니다.
임시로 사용하여 원하는 임시 값을 리턴 받는 용도로 만들어놓은 테이블 입니다.

1
select 'gocoder.net' as gocoder from dual;
cs



 5. 데이터베이스내 초기 상태나 테이블이 아무것도 없는 상태에서 해당 dual 테이블을 이용하여
임의로 쿼리 조회 값을 만들어 낼 수 있습니다.



마무리


from을 생략 하지 못하게 하는게 더 도움이 될거 같네요.

댓글을 달아 주세요


사용자 계정 언락


안녕하세요.
고코더 입니다.


 1. 오라클 설치 이후에 기본 샘플 계정인 scott으로 접속하려고 하면 이런 메세지가 나타납니다.
계정이 잠겨있기 때문에 unlock 처리를 해야 사용이 가능합니다.
"ora-28000 the account is locked"



 2. 커맨드 창에서 관리자 계정으로 접속 합니다. 
sqlplus "/as sysdba"


 3. 그리고 아래처럼 scott 자리에 계정을 넣고 입력하면
잠금이 해제 됩니다. 
alter user scott account unlock;



마무리

그냥 기본 설정으로 풀어놓아도 되는데..


댓글을 달아 주세요


Oracle 11g Setup download


안녕하세요.
고코더 입니다.


 1. 오늘은 오라클 시리즈중에 가장 인기가 많은 11g 버전을 다운로드 해보겠습니다. 
현재 19c까지 나왔지만 익숙한게 좋네요
-> Oracle - 오라클 데이터베이스 19c 다운로드 및 설치하기


 2. 오라클 사이트로 이동해서 스크롤을 내리다 보면
11g 릴리즈 2버전 버전을 다운로드 가능합니다.
파일을 fil1, fil2 두가지 모두 다운르도 해야 합니다.


 3. 두가지 압축 파일은 풀어서 한 폴더에 모아두어야 합니다.


 4. 두개에 압축파일을 모아두면 이렇게 구성이 됩니다.
이제 여기서 setup.exe 를 실행해주세요.


 5. 설치를 함께 해보겠습니다. 이메일 주소를 넣으면 오라클 정보와 보안 메일이 오지만  저는 그냥 빈칸으로 다음


 6. 예를 클릭 합니다.



 7. 새롭게 설치 하는거라면 "데이터베이스 생성 및 구성"으로 다음 


 8. 학습자라면 데스크톱 클래스로 지정하고 다음


 9. 설치할 데이터베이스 폴더와 전역 이름을 정합니다. 기본 설정 그대로 다음


 10. 비밀번호를 간단히 했다면 그냥 예를 눌러주세요.


 11. 요약정보를 보고 완료를 눌러주세요.


 12. 그리고 설치가 시작됩니다. 시간이 꽤 걸리네요 


 13. 데이터베이스 생성 까지 완료가 되었습니다.



 14. 그리고 설치고 완료 되었습니다. 


어려운 단계는 하나도 없지만
학습자를 위해 남겨봅니다.


마무리


11g가 제일 좋네요


댓글을 달아 주세요


19c 언인스톨 삭제


안녕하세요.
고코더 입니다.


오라클 19c가 오래된 사양 탓에 제대로 작동안해서 지울려고 하는데
언인스톨을 제공하지 않고 있습니다.
황당하네요.

그래서 결국 직접 하드코딩 삭제를 해보았습니다.



 1. 서비스 중지


서비스탭에 가서 19c 관련 모든 서비스를 사용중지 시켜주세여



 2. 레지스트리 삭제


그 다음 레지스트리를 삭제합니다. 
시스템에서 작동 되는걸 막아야겠죠

- HKEY_LOCAL_MACHINE/SOFTWARE/Oracle
에서 모든 서비스 삭제 delete


HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Oracle~~
- 해당 레지스트리도 모두 삭제 


HKEY_LOCAL_MACHINE/SOFTWARE/Wow6432Node/Oracle
- 해당 레지스트리 삭제




 3. 폴더삭제


개인이 설정한 19c 오라클 설치 디렉토리


C:드라이브 루트에 있는
Oracle 폴더 삭제


C:\Program Files
에 있는 Oracle 폴더 삭제


그리고 재부팅하면 새로운 오라클을 설치 가능합니다. 


마무리


아 컴퓨터가 안 따라줘서 이전 버전으로 다시 설치했습니다.


댓글을 달아 주세요


sequence 생성하기


안녕하세요.
고코더 입니다.


 1. 오라클은 다른 DBMS와 달리 자동 증가값을 생성하려면 
sequence를 만들어야 합니다.
귀찮긴 해도 시퀀스값도 관리 할 수 있는건
장점일거 같네요


 2. 방법은 간단합니다.
아래처럼 시퀀스 생성 쿼리를 만든후에
create sequence board_seq start with 1 increment BY 1 maxvalue 10000;
start with : 시작 값
increment BY : 증가 값
maxvalue : 최대 증가값


 3. insert시 마다 "board_seq.nextval" 을 넣어주면 
자동으로 증가 값을 입력 가능 합니다. 
insert into board(idx,name,title,content,hit) values (board_seq.nextval,'gocoder','제목','내용',0);


마무리

불편하지만 꼭  필요한 옵션 


댓글을 달아 주세요


SQL 프로그램에서 접근이 안될때 


안녕하세요.
고코더 입니다.


 1. 오라클 19c를 10년된 윈도우7에 깔았더니(내 책임이네)
sqlplus로 오라클이 접속은 되지만


 2. SQL 프로그램이나 서버에서 접속이 안되고 
이런 메세지가 뜨는 경우가 있습니다. 
the network adapter could not establish the connection



 3. 저는 19c 버전에서 이런 현상이 발견해서 서비스를 열어보니 오라클 리스너 서비스가 실행이 안됩니다.
시작해도 중지되고 설치 과정에 문제가 있어서 설치가 제대로 안된 것입니다. 


 4. 오라클을 다시 설치하시던가 해당 버전이
컴퓨터 사양과 안맞아서 생기는 이유 입니다.


마무리


19c 복잡해요


댓글을 달아 주세요


관리자 권한으로 sysdba 로그인하기 


안녕하세요.
고코더 입니다.


 1. 오라클을 설치하고 관리자 계정으로 
로그인하는 방법을 알아보려고 합니다.
윈도우에서 cmd 명령프롬프트를 실행합니다.
그리고 아래 명령어를 실행 합니다. 
sqlplus '/as sysdba'


 2. 그러면 관리자 권한으로 접속이 가능합니다.



마무리


만약 안되면 따옴표를 제거 하고 해보세요
sqlplus /as sysdba




댓글을 달아 주세요


권한 사용자 오류


안녕하세요.
고코더 입니다.


 1. 오라클 12g 부터 정상적인 권한을 부여 하는 명령어를 내리면
"공통 사용자 또는 롤 이름이 부적합합니다."
라는 메세지가 뜹니다. 


 2. 버전 12g 부터는 유저 이름 앞에 c##을 붙혀줘야 합니다.
"create user c##scott idetified by tiger;"

 3. 해당 명령어를 먼저 설정하면 c## 패턴을 쓰지 않아도 됩니다.
alter session set "_ORACLE_SCRIPT"=true;


 4. 그럼 아래처럼 정상적으로 일반 권한 명령어로도 권한이 주어집니다. 



마무리

오라클 괜한 옵션을..



댓글을 달아 주세요