IT, 프로그래밍
-
[PL/SQL] 컬렉션(Collection) - 개념IT, 프로그래밍/Database (Oracle) 2019. 1. 23. 09:12
Collection = 다양한 데이터 타입을 가질 수 있는 동시에, 여러 로우에 해당하는 데이터를 가질 수 있는 자료형. 특징 생성자를 이용해 초기화 가능빌트인 함수와 프로시저로 구성된 컬렉션 메소드 제공 1) 연관 배열(Associative Array) 키와 값으로 구성된 컬렉션. 키를 Index라고 부르기 때문에 Index-by 테이블 이라고도 함.자바에 있는 Map 구조에 대응되는 컬렉션이다. TYPE 이름 IS TABLE OF 값타입 INDEX BY 인덱스타입; 으로 정의하여 사용한다. 인덱스타입 = 키 타입임. 123456789101112131415DECLARE TYPE av_type IS TABLE OF VARCHAR2(40) INDEX BY PLS_INTEGER; vav_test av_typ..
-
[JAVA] 자바와 셀레니움(Selenium)으로 웹 페이지 가지고 놀기IT, 프로그래밍/Java 2019. 1. 18. 16:33
What is Selenium? 셀레니움은 웹 어플리케이션을 간편하게 테스트 하기 위해 만들어진 툴입니다. 웹 어플리케이션은 어떤 방향을 가지고 동작이 이루어집니다. 예를 들면 게시판에 글을 쓰기 위해서는 메인 페이지를 조회하고, 메뉴바에서 로그인 버튼을 클릭한 후에 ID와 PW를 입력하여 로그인 한 후에, 게시판 페이지를 조회한 후에 게시판 글쓰기 버튼을 클릭합니다. 만약 이런 중간에 거쳐야 할 동작들이 40, 50개 정도 있다면 일일이 사람이 클릭하면서 확인하기는 무리가 있을 것입니다. 예를 들면 설문조사 페이지를 만들어서 잘 동작하는지 확인하기 위해 입력 버튼을 100개를 클릭해야 한다면, 어떤 기능을 확인하기 위해 수십개의 버튼을 클릭해 가면서 확인해야 합니다. 셀레니움을 쓰면 내가 지정한 동작을..
-
[PL/SQL] 레코드 (Record)IT, 프로그래밍/Database (Oracle) 2019. 1. 18. 13:02
레코드 (Record) : 레코드란 여러 가지 데이터 타입을 가질 수 있는 복합형 구조의 데이터 타입이며, 하나의 행(Row)에 대응한다. C언어에서 구조체(struct)와 유사한 개념이다. 레코드는 선언 방식에 따라 커서형, 사용자 정의형, 테이블형 레코드로 나눌 수 있다. 1. 사용자 정의형 레코드 TYPE 레코드명 IS RECORD (필드명1 필드1 타입[ [NOT NULL] := 디폴트값 ],필드명2 필드2 타입[ [NOT NULL] := 디폴트값 ] ... );레코드변수명 레코드명; 1234567891011121314DECLARE TYPE dept_rect IS RECORD( department_id NUMBER := 1, --혹은 departments.department_id%TYPE depa..
-
[PL/SQL] 커서 (Cursor)IT, 프로그래밍/Database (Oracle) 2019. 1. 17. 16:10
커서란, SQL문을 처리한 결과 집합을 가리키는 일종의 포인터이다. (C에서 나오는 포인터 개념과 유사하다)이 결과 집합은 오라클 서버 프로세스 내부의 Private SQL Area라는 메모리 영역에 저장되는데,여기서 유의해야 할 점은 커서는 클라이언트 측 프로세스에서 가리키고 있다는 점이다.Private SQL Area는 특정 쿼리에 대한 결과를 저장하면서 캐싱 하는 역할을 하는데,한 세션 안에서 같은 쿼리를 반복적으로 호출한다면, 저장되어 있는 결과 집합을 반환하면서 자원 낭비를 최소화한다. >> 더 자세한 아키텍쳐를 알고 싶으면 여기를 참고
-
[PL/SQL] 트랜잭션 (Transaction)IT, 프로그래밍/Database (Oracle) 2019. 1. 17. 11:00
트랜잭션(Transaction)이란, 일관성 있는 상호작용을 위한 단위이다. 데이터베이스 시스템은 ACID (Atomicity, Consistency, Isolation, Durability)를 보장하기 위해 트랜잭션을 논리적 작업단위로 사용한다. 트랜잭션을 통해 데이터베이스는 항상 일관성 있는 상태를 유지해야 한다. 비유를 하자면, 돈을 입금하는 도중에 오류가 발생하여 거래가 취소되면 많은 문제가 생길 수 있다. 이를 위해 은행 거래에서는 완전히 거래가 끝났을시에 거래 정보를 확정하고, 오류가 발생하면 거래를 시작하기 전의 상태로 되돌린다. PL/SQL상에서 사용할 수 있는 트랜잭션은 아래와 같다. 1. COMMIT 데이터베이스 연산이 정확하게 종료되어 변경내역을 실제 데이터베이스에 반영한다.만약 DB..
-
[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..