본문 바로가기

SQL/Oracle9

[Oracle] ROWNUM을 이용해 LIMIT 구현(제한된 개수의 데이터 가져오기) 조회하려는 테이블에서 데이터를 10개씩 가져오기 예시: board_tbl 테이블 MySQL에서의 LIMIT 구문 /* 첫번째 데이터에서 10개 가져오기 */ SELECT * FROM board_tbl LIMIT 0, 10; /* 열한번째 데이터에서 10개 가져오기 */ SELECT * FROM board_tbl LIMIT (0 + 10), 10; ... SELECT * FROM 테이블명 LIMIT 가져오려는 데이터 순번 -1, 가져오려는 데이터 개수; Oracle에서의 ROWNUM 사용 /* 첫번째 데이터에서 10개 가져오기 */ SELECT * FROM ( SELECT ROWNUM AS rn, bt.* FROM (SELECT * FROM board_tbl) bt WHERE ROWNUM 0; /* 열한번.. 2021. 9. 23.
[Oracle] Mac 윈도우에서 작성한 sql 파일 한글 깨짐 git 으로 협업해서 프로젝트 진행하는 중에 Oracle SQLDeveloper 상에서 파일 한글 깨짐현상 발생 1. SQLDeveloper bin 폴더를 찾아 경로 복사 Application > SQLDeveloper > Contents > Resources > sqldeveloper > sqldeveloper > bin 2. 터미널 열어서 cd + 복사한 경로 3. vi 편집기로 sqldeveloper.conf 파일 열기 4. vi 편집기에 들어가면 명령모드이기때문에 a i o s 중 하나를 눌러 편집모드로 변경 가장 아래부분에 아래와 같이 INSERT라는 문구가 생김 5. 가장 하단에 AddVMOption -Duser.language=ko AddVMOption -Duser.country=KR 을 작.. 2021. 9. 22.
[Oracle] Mac The directory is not accessible 에러 Oracle SQL Developer 에서 파일을 저장하려고 하는데 특정 폴더에 접근할 때는 아래와 같은 에러창이 뜸 → bash의 권한이 없기 때문이라고 함 1. System Preferences > Security & Privacy > Full Disk Access > Click the lock to make changes. 2. 비밀번호 입력 > + 버튼 > / 입력 3. /bin/bash 입력 > Go 4. Open 5. 아래와 같이 추가가 되면 자물쇠 닫아주기 2021. 9. 20.
[Oracle] 시퀀스(Sequence)를 이용한 글번호 매기기와 증가 이상 Oracle에서 시퀀스와 테이블을 생성함 CREATE SEQUENCE spe_num; CREATE TABLE spe_tbl( bno NUMBER(10, 0) PRIMARY KEY, title VARCHAR2(200) NOT NULL, content VARCHAR2(2000) NOT NULL, writer VARCHAR2(50) NOT NULL, regdate DATE default SYSDATE, updatedate DATE default SYSDATE ); Oracle에는 MySQL에서 자동으로 증가하는 번호인 AUTO_INCREMENT가 없기 때문에 SEQUENCE를 생성해서 사용 spe_num이라는 시퀀스에는 처음에 0이 저장됨 그리고 PRIMARY KEY가 들어갈 자리에 시퀀스명.nextval이라.. 2021. 9. 17.
[Oracle] Mac ORA-01031 insufficient privileges 에러(ORA-01031) SYSTEM 이 아닌 다른 계정(MYTEST)으로 테이블을 생성하려고 하는데 다음과 같은 에러가 뜸 해당 계정 UNLOCK을 시도해봤지만 안되고 해당 계정이 존재하지 않는다고 나옴 → 세션을 먼저 변경해줘야함 과거의 구글링했던걸 정리해둔걸로 해결함.. 아래 게시글 참고 2021.07.22 - [SQL/Oracle] - [Oracle] 맥 터미널에서 오라클 실행 및 HR계정 활성화 [Oracle] 맥 터미널에서 오라클 실행 및 HR계정 활성화 오라클 실행 1. 아래 명령문으로 오라클 Oracle XE DB 컨테이너가 켜져있는지 확인 docker ps 2. 아래와 다르게 목록에 해당 컨테이너가 없다면 컨테이너를 실행시키기 3. 컨테이너의 목록 전체를 조회 wheneveryouwantsz.tistory.com.. 2021. 9. 15.
[Oracle] PL/SQL PL/SQL Procedural Language extension to SQL SQL의 확장된 개념으로 오라클에서 절차적 프로그래밍을 가능하게 함 DECLARE ~ END 구간을 블록이라고 하는데, 이름이 있는 블록에는 함수, 프로시저, 패키지, 트리거 등이 있고 이름 없는 블록은 익명 블록이라고 하며 명칭을 붙이지 않고 사용하는 프로그래밍 구간을 의미 문법 DECLARE 변수명 데이터타입; ... BEGIN 실행문 END; 예제) PL/SQL 변수에 HR 계정의 샘플 데이터에서 데이터값을 가져와 저장 employees 테이블 사원번호 100번의 이름과 부서명 저장 DECLARE f_name VARCHAR2(20); l_name VARCHAR2(20); dep_id VARCHAR2(20); BEGIN S.. 2021. 7. 25.