Oracle 의 초대형 데이터 형식
6171 단어 데이터 뱅 크
1 Orlce 중 VARCHAR 2
데이터 베 이 스 를 사용 할 때 문자 데 이 터 는 일반적으로 VARCHAR 2 를 사용 하 는데 VARCHAR 2 는 PL/SQL Data Types 의 변수 유형 도 나 누고 Oracle Database 의 필드 유형 도 나 누 어 장면 에 따라 최대 길이 가 다르다.Oracle Database 에서 VARCHAR 2 필드 형식 으로 최대 값 은 4000 입 니 다.PL/SQL 에서 VARCHAR 2 변수 유형 은 최대 바이트 길이 가 32767 입 니 다.VARCHAR 2 가 우리 가 저장 해 야 할 정 보 를 수용 하지 못 할 때 나 오 는 Oracle 의 빅 데이터 형식 LOB(Large Object,대형 대상).
프로젝트 에서 발생 하 는 문제:프로 토 콜 에 서명 할 때 다른 서비스의 라 이브 러 리 를 요청 해 야 하기 때문에 메시지 입고 저장 프로 토 콜 기록 을 전송 합 니 다.일부 프로 토 콜 설정 이 너무 많 을 때 입고 필드 에 문제 가 생 길 수 있 습 니 다.마지막 으로 varchar 2 를 CLOB(문자 형 대형 대상)로 바 꾸 기로 결 정 했 습 니 다.
이 Orlce 의 LOB 타 입
· Oracle 에서 LOB(Large Object,대형 대상)유형의 필드 는 현재 점점 더 많이 사용 되 고 있다.이런 유형의 필드 는 용량 이 크 고(최대 4GB 의 데 이 터 를 수용 할 수 있 음)한 표 에 이런 유형의 필드 가 여러 개 있 을 수 있어 유연 하고 데이터 양 이 매우 많은 업무 분야(예 를 들 어 이미지,파일 등)에 적용 된다.
· LOB 유형 은 BLOB 와 CLOB 두 가지 로 나 뉜 다.BLOB 는 바 이 너 리 대형 대상(Binary Large Object)으로 텍스트 가 아 닌 바이트 스 트림 데이터(예 를 들 어 프로그램,이미지,동 영상 등)를 저장 하 는 데 적용 된다.
· 한편,CLOB,즉 문자 형 대형 대상(Character Large Object)은 문자 집합 과 관련 되 고 텍스트 형의 데이터(예 를 들 어 역사 파일,대부분 저작 등)를 저장 하기에 적합 하 다.
삼 조작
1.일반 방식:
일반 검색 어 에 서 는 CLOB 형식의 필드 내용 을 볼 수 없 으 며,일반 삽입 도 Oracle 의 암시 적 전환 때 문 입 니 다.
2.pl/sql 함수 사용
--PL/SQL 문법 을 사용 해 SQL 을 직접 맞 추 는 대신 바 인 딩 변수 로 해결한다
DECLARE
V_LANG CLOB:='삽입 할 대량의 문자열';
V_UPDATE CLOB:='업 데 이 트 된 대량의 문자열';
BEGIN
INSERT INTO temp t VALUES ('Grand.Jon', 22, V_LANG); --증가시키다
UPDATE temp t SET t.temp_clob = V_UPDATE WHERE rownum = 1; --수정 하 다.
SELECT t.NAME, dbms_lob.substr(t.temp_clob) FROM TEMP t; --검색 은 CLOB 를 문자 형식 으로 변환 합 니 다.
DELETE temp t WHERE rownum = 1; --열 별로 삭제
COMMIT;
END;
3.CLOB 작업 에 대해 저 희 는 저장 과정 에서 기본적으로 dbms 를 사용 합 니 다.lob 에서 substr,append,write 등 방법.
dbms_lob.createtemporary(V_SQL,true); --맞 춤 형 sql 을 저장 하기 위해 임시 clo 를 만 듭 니 다.
dbms_lob.write(v_SQL,'정보 쓰기'); --쓰기 동작
dbms_lob.append(v_SQL,','); --맞 춤 형 clob
dbms_lob.substr(v_SQL); --clob 를 캡 처 합 니 다.매개 변 수 를 전달 하지 않 으 면 모두 읽 습 니 다.
dbms_lob.freetemporary(v_SQL); --clob 석방
4.자바 에서 CLOB 조작 하기:
새로 추가:
먼저 빈 CLOB 를 삽입 한 다음 열 을 잠 그 고,
String sql = "insert into temp values(?,?,empty_clob())";
String sqlClob = "select temp_clob from temp t where t.name=? for update";
clob = (CLOB) rs.getClob(1);
writer = clob.getCharacterOutputStream(); // clob
writer.write(article.getContent());
writer.flush();
writer.close();
: JDBC setClob() ;
CLOB clob = oracle.sql.CLOB.createTemporary(conn,false,oracle.sql.CLOB.DURATION_SESSION);
clob.setString(1L, content);
pst = conn.prepareStatement(sql);
pst.setClob(1, clob);
pst.setString(2,name);
result = pst.executeUpdate();
:
Clob clob = rs.getClob("temp_clog");
Reader rd = clob.getCharacterStream();
char [] str = new char[12];
while(rd.read(str) != -1) {
builder.append(new String(str));
}
article.setContent(builder.toString());
CLOB VARCHAR2 , DBA , , , Database 。 , CLOB 。
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
nginx websocket ip_해시 규칙프로젝트 를 다운로드 한 후 서로 다른 네트워크 에 각각 이 demo 프로젝트 를 배치 합 니 다. 프로젝트 에서 환경 변수 에 따라 시스템 변 수 를 설정 합 니 다. spring.profiles.active=de...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.