[Oracle] PL/SQL 프로시저 💡PL/SQL PL/SQL의 정식 명칭은 Oracle's Procedural Language extension to SQL이다. PL/SQL은 기존의 ANSI-SQL에 절차 지향 언어 기능을 추가한 것이다. 우리가 쓰는 SQL은 문장 단위의 실행만을 할 수 있었다. 하나 isaac-christian.tistory.com 이번 글에서는 프로시저를 CRUD로 사용하는 방법에 대해 다룬다. 1. 단일값 (단일 레코드) a. number b. varchar2 c. date 2. 다중값 (다중 레코드) a. cursor 커서 [Oracle] PL/SQL Cursor 📌cursor 커서(cursor)는 SQL 결과 집합을 참조하고 조작하는 데 사용되는 데이터베이스 개체이다. 커..
사용자 관련 작업은 DCL에서 이루어진다. 사용자 관련 작업으로 계정 생성, 삭제 등의 제어과 리소스 제어 권한을 할 수 있다. 💡사용자 계정 생성하기 사용자 계정 생성은 시스템 권한을 가지고 있는 계정(관리자 계정)만 가능하다. 계정 생성 권한을 가지고 있다면 일반 계정도 계정을 생성이 가능하지만, 이런 경우는 극히 드물다. create user 계정명 identified by 암호;--계정 생성(lock 상태) alter user 계정명 identified by 암호;--암호 변경 alter user 계정명 account unlock;--계정 잠금 해제 alter user 계정명 account lock;--계정 잠금 계정은 생성한 직후에는 잠금 상태이기 때문에 사용하려면 unlock하여 잠금을 해제해..
💡명령어 실행 처리 과정 클라이언트 컴퓨터에는 SQL Developer, DBeaver 같은 프로그램이 있고, 오라클 서버 컴퓨터에는 실제 프로세스가 동작하는 메모리와 오라클이 저장되어 있는 저장장치가 있다. ANSI-SQL과 익명 프로시저는 동작 방식이 같고, 실명 프로시저는 동작 방식이 다르다. 1. ANSI-SQL 2. 익명 프로시저 실행 과정 a. 클라이언트에서 구문(select)을 작성한다. b. 실행 (Ctrl + Enter) c. 명령어를 오라클 서버에 전달 d. 서버가 명령어를 수신 e. 구문 분석(파싱) + 문법 검사 f. 컴파일 g. 실행 (프로시저 실행) h. 결과 셋 도출 i. 결과 셋을 클라이언트에게 반환 j. 결과 셋을 화면에 출력 실행 과정 설명 a: 구문을 작성한다고 뭔가 일..
💡오라클 서버 생성 cmd > ipconfig 콘솔에서 오라클 서버 컴퓨터의 ip를 확인한다. 컴퓨터의 방화벽이 1521번을 막고 있기 때문에 아직 실행이 되지 않는다. 오라클 서버를 사용하고 있는 컴퓨터에서 1521번을 열어주어야 한다. 방화벽 상태확인 Windows Defender 방화벽 > 고급 설정 > 인바운드 규칙 인바운드 규칙에서 '새 규칙'으로 새로운 규칙을 하나 만들어줘야 한다. 포트 선택 > 1521번 포트 허용 > 이름 설정 만약 실행이 되지 않는다면 오라클 서버 컴퓨터에 hr계정이 없기 때문일 수 있다. 연결이 성공하면 Oracle 접속에 접속 이름으로 설정한 team.hr으로 생성된 것을 확인할 수 있다. DBeaver에서 Connect DBeaver에서 연결하려면 Oracle을 선..
💡익명 프로시저 declare -- 선언부 begin -- 구현부 end; declare부터 begin까지 선언부, begin부터 end까지가 구현부이다. serveroutput on set serveroutput on; set serveroutput off; dbms.output이 콘솔로 보이게 하려면 먼저 serveroutput을 반대로 꺼줄 때에는 off 키워드를 사용한다. 익명 프로시저의 사용 DECLARE num number; name varchar2(30); today DATE; BEGIN num := 10; dbms_output.put_line(num); name := 'Isaac'; dbms_output.put_line(name); today := sysdate; dbms_output.pu..
💡예외 처리 예외 처리는 실행부에서(being~end) 발생하는 예외를 처리하는 블록(exception 블록)이다. 예외 발생 --ORA-06502: PL/SQL: numeric or value error: character string buffer too small DECLARE vname varchar2(5); BEGIN dbms_output.put_line('하나'); SELECT name INTO vname FROM tblInsa WHERE num = 1001; dbms_output.put_line('둘'); dbms_output.put_line(vname); END; 위 프로시저는 변수의 길이가 저장하려는 데이터보다 짧아 오류가 발생하고 있다. 절차를 갖게 되었을 때의 에러 발생은 실행 자체에 ..
📌cursor 커서(cursor)는 SQL 결과 집합을 참조하고 조작하는 데 사용되는 데이터베이스 개체이다. 커서를 사용하면 결과 집합의 행을 하나씩 탐색하여 각 행의 데이터에 접근할 수 있다. select into select into는 결과셋의 레코드가 1개일 때만 사용할 수 있다. cursor cursor는 결과셋의 레코드가 다중 레코드일 때 사용한다. 커서를 통해 가져온 데이터를 처리하기 위해 루프를 사용한다. 루프는 커서에서 데이터를 한 행씩 가져와서 처리할 수 있도록 하며, exit when문을 사용하여 루프를 종료한다. cursor의 선언 CURSOR vcursor IS SELECT name FROM tblInsa; cursor를 선언할 때에는 앞에 식별자가 오고, 뒤에 자료형이 온다. 이처..
💡조건문 [Java] 조건문: if문, switch문 제어문은 수많은 명령어들의 흐름(실행 순서)을 통제하는 수단을 의미한다. 제어문의 끝에 문장 종결자(;)를 사용하지 않는다는 특징이 있다. 제어문은 크게 조건문(조건 제어문)과 반복문(반복 isaac-christian.tistory.com PL/SQL 조건문은 Java의 조건문과 비슷한 점이 많다. if문 DECLARE vnum NUMBER := 10; BEGIN IF vnum > 0 THEN dbms_output.put_line('양수'); END IF; END; if else문 DECLARE vnum NUMBER := 10; BEGIN IF vnum > 0 THEN dbms_output.put_line('양수'); ELSE dbms_output.p..