7/12 시퀀스, 동의어, 프로시저

2022. 7. 12. 19:05· 카테고리 없음
목차
  1. 시퀀스Sequence
  2. 시퀀스 생성
  3. 시퀀스 사용
  4. 시퀀스 조회
  5. 시퀀스 삭제
  6. 동의어Synonym
  7. 시노님 생성
  8. 시노님 조회
  9. 시노님 삭제
  10. 프로시저PL/SQL
  11. 프로시저 생성
  12. 프로시저 출력
  13. 프로시저 조회
  14.  

시퀀스Sequence

숫자로 이루어짐 ⇒ 매번 정해진 증가치만큼 숫자가 증가

시퀀스 생성

create sequence 시퀀스명
start with 출발숫자
increment by 증가치
maxvalue 최대치
minvalue 최소치
cycle  
nocache

minvalue의 최소치 ⇒ start with의 출발숫자와 같거나 작아야함

start with는 처음 한 번만 쓰이는 수치,

minvalue와 maxvalue로 계속 반복

  • 예시
    create sequence 시퀀스명
    start with 1    -- 첫번째 출발은 1
    increment by 1  -- 증가치는 1
    nomaxvalue      -- 최대값이 없는 무제한
    nominvalue      -- 최소값이 없다
    nocycle         -- 반복을 하지 않는다
    nocache
    
    create sequence 시퀀스명 start with 2 -- 첫번째 출발은 2 increment by 1 -- 증가치는 1 maxvalue 5 -- 최대값이 5 minvalue 1 -- 최소값이 1 cycle -- 반복 nocache

시퀀스 사용

시퀀스명.nextval

시퀀스 조회

select * from user_sequences
시퀀스명.currval
select last_number
from user_sequences
where sequence_name = '시퀀스명'

시퀀스 삭제

drop sequence 시퀀스명

동의어Synonym

조회하고자하는 테이블명이 길 때 테이블명을 짧게 만들어서 사용하고자할 때 사용

시노님 생성

create or replace synonym 시노님명 for 원래테이블명

시노님 조회

select *
from user_synonyms

시노님 삭제

drop synonym 시노님명

프로시저PL/SQL

Proceduer Language / Strunctured Query Language

일반 select문보다 속도가 빠르다 (프로시저는 컴파일(생성)할 때 한번만 조건검사해도 됨. select문은 매번 select해서 조건을 검사해야함)

자바의 메소드와 비슷함

PL/SQL에서 어떤 변수에 값을 넣어줄 때 select문 ⇒into, 직접 값을 변수에 넣어줄 때 ⇒ := 해준다.


프로시저 생성

1. 기본형

create or replace procedure 프로시저명 (파라미터변수 IN 파라미터타입)
is --변수선언부, 자리수지정
	V_컬럼명1    변수타입(자리수);
	V_컬럼명2    변수타입(자리수);

begin --실행부, 1대1매핑
	select 컬럼명1, 컬럼명2
				 INTO
				 V_컬럼명1, V_컬럼명2
	from 테이블명
	where 파라미터조건;
dbms_output.put_line(V_컬럼명1 || V_컬럼명2); --화면에 출력하고싶은 내용 (==sysout)

end 프로시저명;

파라미터변수는 p_를 붙이면 기존컬럼과 구분하기 쉬움

파라미터타입에는 자리수 지정 불가

IN ⇒ 입력모드 OUT ⇒ 출력모드

select 되어진 값(컬럼명1, 컬럼명2)은 항상 변수(V_컬럼명1, V_컬럼명2)에 넣어주어야 함, 즉 변수로 INTO 해주어야함

2. 테이블명.컬럼명%type 으로 변수선언

create or replace procedure 프로시저명 (파라미터변수 IN 테이블명.컬럼명1%type) -- 컬럼명1의 타입을 쓰겠다는 의미
is
	V_컬럼명1  테이블명.컬럼명1%type;
	V_컬럼명2  변수타입(자리수);
begin
	select 컬럼명1, 컬럼명2
				 INTO
				 V_컬럼명1, V_컬럼명2
	from 테이블명
	where 파라미터조건;
dbms_output.put_line(V_컬럼명1 || V_컬럼명2);

end 프로시저명;

3. record(행)타입으로 변수선언

create or replace procedure 프로시저명 (파라미터변수 IN 파라미터타입) -- 컬럼명1의 타입을 쓰겠다는 의미
is
	type record타입명 is record
	(변수명1  변수타입(자리수)
	,변수명2  변수타입(자리수)
	);
	v_rcd  타입명;

begin
	select 컬럼명1, 컬럼명2
				 INTO
				 v_rcd
	from
	where 파라미터조건;
dbms_output.put_line(v_rcd.컬럼명1 || v_rcd.컬럼명2);

end 프로시저명;

4. 테이블명%rowtype 으로 변수선언

create or replace procedure 프로시저명 (파라미터변수 IN 파라미터타입)
is
	v_all    테이블명%rowtype;
	v_result 변수타입(자리수);
begin
	select *
				 INTO
				 v_all
	from 테이블명
	where 파라미터조건;
v_result := --직접 값을 변수에 넣어줄 때
v_all.컬럼명1 || v_all.컬럼명2
	
dbms_output.put_line(v_result);

end 프로시저명;

컴파일 에러시 오류찾기

cmd에서 찾는 것이 빠르다

sqlplus /nolog ⇒ hr/aclass ⇒ 프로시저 복붙 후 / ⇒ show errors


프로시저 출력

보기 - DBMS출력 - +기호에서 local_hr로 연결

exec또는execute 프로시저명(파라미터);

프로시저 조회

select *
from user_source
where type = 'PROCEDURE' and name = '프로시저명(대문자)';

 

  1. 시퀀스Sequence
  2. 시퀀스 생성
  3. 시퀀스 사용
  4. 시퀀스 조회
  5. 시퀀스 삭제
  6. 동의어Synonym
  7. 시노님 생성
  8. 시노님 조회
  9. 시노님 삭제
  10. 프로시저PL/SQL
  11. 프로시저 생성
  12. 프로시저 출력
  13. 프로시저 조회
  14.  
달래dallae
달래dallae
백엔드를 열심히 갈고 닦아서 광내봅시다 ~_~
달래dallae
머루랑달래랑
달래dallae
전체
오늘
어제
  • 분류 전체보기 (54)
    • 프로젝트 Project (14)
    • 백엔드 Backend (27)
      • 기본 개념 (13)
      • 서버 Server (9)
      • 스프링 Spring (1)
      • JPA (3)
    • 데이터베이스 Database (6)
      • MySQL (1)
      • Oracle (5)
    • 언어 Language (0)
      • 자바 Java (0)
      • 파이썬 Python (0)
    • 알고리즘 Algorithm (1)

블로그 메뉴

  • 홈
  • 글쓰기
hELLO · Designed By 정상우.v4.2.2
달래dallae
7/12 시퀀스, 동의어, 프로시저
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.