IT, 프로그래밍/Database (Oracle)
-
[PL/SQL] 예외처리IT, 프로그래밍/Database (Oracle) 2019. 1. 17. 08:30
간단하게 설명하자면, 컴파일 에러는 컴파일러가 컴파일시에 확인하여 나오는 오타같은 에러고,예외는 컴파일이 되어 프로그램이 작동되는 중이지만, 예기치 못한 null값의 입력등으로 생기는 예외이다.시스템 예외는 오라클이 미리 이런 예외 상황에 대해 미리 정의해 놓은 예외이며, 오라클 시스템에서 자동으로 잡아준다.사용자 정의 예외는 예상되는 특정 예외 상황에 대해 개발자가 직접 정의한 예외이다 EXCEPTION WHEN 예외명1 THEN 예외처리 구문1WHEN 예외명2 THEN 예외처리 구문2...WHEN OTHERS THEN 예외처리 구문n; 자바 프로그래밍을 해 본 사람이라면, try-catch 문과 유사하다는 점을 떠올릴 수 있을 것이다. 1234567891011 try { FileInputStream ..
-
[PL/SQL] 함수와 프로시저IT, 프로그래밍/Database (Oracle) 2019. 1. 16. 13:58
PL/SQL의 대표적인 부 프로그램에는 함수(Function)과 프로시져(Procedure)가 있다. 함수(Function) 함수 생성 CREATE OR REPLACE FUNCTION 함수 이름 (매개변수1, 매개변수2....)RETURN 데이터 타입;IS[AS]변수, 상수 선언..BEGIN실행부 RETURN 반환값[EXCEPTION 예외처리부]END [함수 이름]; 함수는 기본적으로 SQL문 안에서 사용해야 한다.오라클에서 기본적으로 제공해주는 함수(concat 이라던가하는..)는 Built-in 함수라고 부른다. 보통 PL/SQL에서 함수란 사용자가 직접 정의한 함수를 말한다. 1234567891011CREATE OR REPLACE FUNCTION fu_sum_gugu( vn_row NUMBER )R..
-
[PL/SQL] 기초 문법IT, 프로그래밍/Database (Oracle) 2019. 1. 16. 09:18
반복문 LOOP, WHILE, FOR 1. LOOP LOOP처리문EXIT [WHEN 조건];END LOOP; 12345678910111213141516DECLARE vs_gugu_line number := 1; vs_gugu_col number :=1;BEGIN LOOP DBMS_OUTPUT.PUT_LINE( vs_gugu_line || '단 입니다.'); vs_gugu_col := 1; LOOP DBMS_OUTPUT.PUT_LINE(vs_gugu_line || ' * ' || vs_gugu_col || ' = ' || (vs_gugu_line * vs_gugu_col)); vs_gugu_col := vs_gugu_col + 1; EXIT WHEN vs_gugu_col > 9; END LOOP; vs_g..
-
[PL/SQL] PL/SQL 기초IT, 프로그래밍/Database (Oracle) 2019. 1. 15. 23:12
PL/SQL (Oracle's Procedural Language extension to SQL) = 오라클에서 SQL을 확장하여 사용하는 프로그래밍 언어. 이름과 같이 절차적 프로그래밍 언어이다. PL/SQL을 왜 사용할까? 1. 대용량 데이터를 연산해야 할 때, WAS등의 서버로 전송해서 처리하려면 네트워크에 부하가 많이 걸릴 수 있다. 이때 프로시져나 함수를 사용하여 데이터를 연산하고 가공한 후에, 최종 결과만 서버에 전송하면 부담을 많이 줄일 수 있다. 2. 로직을 수정하기 위해 서버를 셧다운 시키지 않아도 된다. 서버에서는 단순히 DB에 프로시저를 호출하여 사용하면 된다. 3. 쿼리문을 직접 노출하지 않는 만큼, SQL injection의 위험성이 줄어든다. 4. 블록 단위로 유연하게 사용할 수..
-
대량의 테스트 데이터를 생성하는 프로시져IT, 프로그래밍/Database (Oracle) 2018. 9. 6. 16:27
1234567891011create or replace procedure bulkInsert(maxLoop in number:=1)ISBEGINFOR temp IN 1..maxLoopLOOPinsert into blogBoard values (BOARD_SEQ.NEXTVAL, 'testContent', sysdate, 'testEmail', 'testTitle', 'testWriter');commit;END LOOP;END; exec bulkInsert(587);Colored by Color Scriptercs 프로시져 연습
-
오라클 처음 배울때 헷갈릴 수 있는 부분 (SQLdeveloper)IT, 프로그래밍/Database (Oracle) 2018. 7. 15. 14:56
대부분 알고 있는 내용이겠지만, 처음 배우는 사람들은 헷갈릴 수도 있는 부분이라서 글을 남겨놓으려고 한다. 오라클 developer에 접속해서 새 접속을 만들 때, 만약 예전에 사용했던 사용자 계정으로 새 접속을 만들면, 이전에 사용했던 테이블들이 계속 나타나는 것을 볼 수 있다. 이것은 이미 만들어 놓은 사용자 계정에 대해 접속하는 것이고, 처음 계정을 만들때 생성한 테이블 스페이스(테이블들이 저장되는 공간)에서 테이블을 계속 불러오게 된다. (사용자가 처음에 계정 생성 할 때 테이블 스페이스를 따로 지정해 주지 않으면 오라클에서 디폴트로 생성해 준다) 만약 같은 계정으로 이전에 진행했던 테이블들을 보고 싶지 않을때는, 테이블 스페이스를 새로 생성해서 변경해 주면 된다.
-
[ORACLE] 오라클 데이터 타입IT, 프로그래밍/Database (Oracle) 2018. 1. 17. 21:05
데이터 타입 : 컬럼이 저장되는 데이터 유형. 원시 타입 (오라클이 기본으로 제공하는 데이터 타입) 과 사용자 정의 데이터 타입으로 구분 가능. 1. 문자 데이터 타입 데이터 타입 설명 CHAR(크기 [BYTE | CHAR] ) 고정길이 문자. 최대 20001byte, 디폴트 값 1byte VARCHAR2 (크기 [BYTE | CHAR] ) 가변 길이 문자. 최대 4000byte, 디폴트 값 1byte NCHAR(크기) 고정길이 유니코드 문자( 다국어 지원), 최대 2000byte, 디폴트값 1 NVARCHAR2 (크기) 가변길이 유니코드 문자(다국어 지원), 최대 4000byte, 디폴트 값 1 LONG 최대 2GB 크기의 가변 길이 문자형. 잘 사용하지 않음. --> 문자입력시 VARCHAR2를 사용..