행위

"PLSQL 변수"의 두 판 사이의 차이

DB CAFE

(같은 사용자의 중간 판 2개는 보이지 않습니다)
1번째 줄: 1번째 줄:
PL/SQL 변수
+
= PL/SQL 변수 =
 +
* 변수는 반드시 문자로 시작해야함!
  
 +
== 단순 변수 ==
 +
* SCALAR 변수
 +
: - 데이터 타입을 직접 지정해 주는 변수
 +
: - number, varchar2, date 등등 으로 직접 데이터타입을 정해주는 것
  
 +
* Reference변수 = 참조변수
 +
: - 해당 데이터가 들어있는 칼럼 정보를 참조
  
변수는 반드시 문자로 시작해야함!
+
* v_ename emp.ename%type  
 
+
: --> 변수 이름을 v_ename 으로 하되 데이터타입은 emp테이블의 ename 칼럼의 데이터 타입과 동일하게
 
 
 
 
1. 단순 변수
 
 
 
 
 
 
 
1) SCALAR 변수
 
 
 
데이터 타입을 직접 지정해 주는 변수
 
 
 
number, varchar2, date 등등 으로 직접 데이터타입을 정해주는 것
 
 
 
 
 
 
 
2) Reference변수 = 참조변수
 
 
 
해당 데이터가 들어있는 칼럼 정보를 참조
 
 
 
 
 
 
 
v_ename emp.ename%type --> 변수 이름을 v_ename 으로 하되 데이터타입은 emp테이블의 ename 칼럼의 데이터 타입과 동일하게
 
 
 
 
 
 
 
칼럼이 많지 않을 경우는 위의 방법을 쓰면 되지만
 
 
 
칼럼이 많을 경우는 rowtype 변수를 사용,
 
 
 
하나의 테이블에 여러 칼럼의 값을 한꺼번에 저장할 수 있는 변수
 
 
 
 
 
  
 +
* 칼럼이 많지 않을 경우는 위의 방법을 쓰면 되지만 칼럼이 많을 경우는 rowtype 변수를 사용,
 +
* 하나의 테이블에 여러 칼럼의 값을 한꺼번에 저장할 수 있는 변수
 +
<source lang=sql>
 
vrow emp%ROWTYPE  
 
vrow emp%ROWTYPE  
 +
<source>
  
 +
== 복합 변수 ==
 +
* 변수 하나안에 여러가지 다른 유형의 데이터를 포함
 +
=== Record Type ===
 +
: - 레코드 타입 변수
 +
: 여러개의 컬럼에 여러개의 값을 넣음
  
 
+
* 사용방법:
 
+
** DECLARE 에서
 
+
<source lang=sql>
 
 
 
 
2. 복합 변수
 
 
 
변수 하나안에 여러가지 다른 유형의 데이터를 포함
 
 
 
 
 
 
 
1) Record Type - 레코드 타입 변수
 
 
 
여러개의 컬럼에 여러개의 값을 넣엄
 
 
 
 
 
 
 
사용방법:
 
 
 
DECLARE 에서
 
 
 
 
TYPE 타입이름(보통 테이블명_record_type) IS RECORD
 
TYPE 타입이름(보통 테이블명_record_type) IS RECORD
  
73번째 줄: 40번째 줄:
 
SELECT 출력할 칼럼들 INTO 변수이름 FROM 테이블명 WHERE 조건 ;
 
SELECT 출력할 칼럼들 INTO 변수이름 FROM 테이블명 WHERE 조건 ;
  
 +
</source>
  
 +
=== Table Type ===
 +
: - 테이블/ 컬렉션 타입 변수
 +
: 하나의 칼럼에 데이터가 여러개
 +
: 하지만 interger라는 칼럼을 만들 수 있는데 관리를 위한 데이터 구분의 역할을 하는 칼럼
  
  
 
+
* 사용방법:
 
+
<source lang=sql>
 
 
 
 
 
 
2) Table Type - 테이블/ 컬렉션 타입 변수
 
 
 
하나의 칼럼에 데이터가 여러개
 
 
 
하지만 interger라는 칼럼을 만들 수 있는데 관리를 위한 데이터 구분의 역할을 하는 칼럼
 
 
 
 
 
 
 
사용방법:
 
 
 
 
DECLARE 에서
 
DECLARE 에서
  
112번째 줄: 71번째 줄:
  
 
--> table type의 변수 1번째 칸에 다른변수 즉, 출력해야 할 칼럼에 대한 내용을 입력하라는 뜻.
 
--> table type의 변수 1번째 칸에 다른변수 즉, 출력해야 할 칼럼에 대한 내용을 입력하라는 뜻.
 +
</source>
  
 +
'''문자열 처리방법'''
  
'''문자열 처리방법'''
 
 
https://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements003.htm#sthref344
 
https://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements003.htm#sthref344
 +
 
q'구분자.........구분자'
 
q'구분자.........구분자'
  
121번째 줄: 82번째 줄:
 
p_cols=> q''{'||V_INDEX_COLUMNS||'}''  
 
p_cols=> q''{'||V_INDEX_COLUMNS||'}''  
 
</source>
 
</source>
 +
 +
[[Category:oracle]]

2023년 4월 5일 (수) 22:04 판

thumb_up 추천메뉴 바로가기


1 PL/SQL 변수[편집]

  • 변수는 반드시 문자로 시작해야함!

1.1 단순 변수[편집]

  • SCALAR 변수
- 데이터 타입을 직접 지정해 주는 변수
- number, varchar2, date 등등 으로 직접 데이터타입을 정해주는 것
  • Reference변수 = 참조변수
- 해당 데이터가 들어있는 칼럼 정보를 참조
  • v_ename emp.ename%type
--> 변수 이름을 v_ename 으로 하되 데이터타입은 emp테이블의 ename 칼럼의 데이터 타입과 동일하게
  • 칼럼이 많지 않을 경우는 위의 방법을 쓰면 되지만 칼럼이 많을 경우는 rowtype 변수를 사용,
  • 하나의 테이블에 여러 칼럼의 값을 한꺼번에 저장할 수 있는 변수
vrow emp%ROWTYPE 
<source>

== 복합 변수 ==
* 변수 하나안에 여러가지 다른 유형의 데이터를 포함
=== Record Type ===
: - 레코드 타입 변수
: 여러개의 컬럼에 여러개의 값을 넣음

* 사용방법:
** DECLARE 에서
<source lang=sql>
TYPE 타입이름(보통 테이블명_record_type) IS RECORD

(타입이름에 들어갈 여러 변수들, 일반 변수 선언과 동일한 문법으로 쓰면 됨) ;

변수이름 타입이름 ;



BEGIN에서

SELECT 출력할 칼럼들 INTO 변수이름 FROM 테이블명 WHERE 조건 ;

1.1.1 Table Type[편집]

- 테이블/ 컬렉션 타입 변수
하나의 칼럼에 데이터가 여러개
하지만 interger라는 칼럼을 만들 수 있는데 관리를 위한 데이터 구분의 역할을 하는 칼럼


  • 사용방법:
DECLARE 에서

TYPE 타입이름(보통 tbl_테이블명) IS TABLE OF

(사용할 변수 설정) ; --> 테이블 타입은 칼럼이 하나기 때문에 변수도 하나

INDEX BY BINARY_INTEGER --> interger 칼럼 만드는 옵션

변수이름 타입이름 ;



BEGIN에서

SELECT 출력할 칼럼들 INTO 다른변수이름 FROM 테이블명 WHERE 조건 ;



변수이름(0) := 다른변수;

--> table type의 변수 1번째 칸에 다른변수 즉, 출력해야 할 칼럼에 대한 내용을 입력하라는 뜻.

문자열 처리방법

https://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements003.htm#sthref344

q'구분자.........구분자'

p_cols=> q''{'||V_INDEX_COLUMNS||'}''