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. 그럼 아래처럼 정상적으로 일반 권한 명령어로도 권한이 주어집니다. 



마무리

오라클 괜한 옵션을..



댓글을 달아 주세요


데이터베이스 문자열 연결 생성 방법 


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


PHP나 ASP와 같은
언어에서는 DB 연결 정보를 문자열로 입력하여
데이터베이스를 연결 합니다.

▼ 가장 기본적인 ASP의 DB 연결 예시입니다.
set db=Server.CreateObject("ADODB.Connection")
db.Open "Provider=SQLOLEDB;Data Source=데이터베이스주소;Initial Catalog=데이터베이스이름;user ID=사용자ID;password=비번"

이렇게 DB 연결하기전에
필요한 곳에 데이터베이스 정보를 문자열로 기록 합니다.
그런데 저 문자열에는 그저 주소와 계정만 넣으면 되지만
헷갈릴때가 많은데

그럴땐 윈도우에 UDL 이란 파일을 이용하시면 됩니다.

Universal Data Link는 데이터 소스를 연결하기 위해 만들어진 파일 형식입니다.


▼ 윈도우에서 아무 파일을 우선 생성합니다.


▼ 그다음 해당 파일의 확장자를 udl로 변경합니다.
아이콘이 달라지네요. 이 파일을 이제 
실행 합니다.


▼ 그럼 데이터 연결 속성이 나오는데
여기서 공급자에서 원하시는 DB를 선택합니다.
mssql은 SQL Server 이고
오라클은 Oreacle OLE DB 입니다.




▼ 그리고 연결을 선택해
해당 탭에서 접근하고 싶은 정보의 SQL 정보를 입력합니다.
연결테스트로 맞게 입력 되었는지 확인합니다.
그리고 확인을 눌러 마무리 합니다.


▼ 그리고 해당 파일을 메모장이나 에디터플러스로 열어봅니다. 
메모장을 키고 드래그만 하면 볼수 있습니니다.


그럼 SQL 연결 문자열이 완성됐고
이걸 소스상에 입력하면 됩니다.



마무리


이 방법을 몰랐을땐 데이터 베이스 연결 문자열 쓰기가 어려웠는데
지금은 쉽네요.


댓글을 달아 주세요