本文へジャンプ
  • ながの子育て応援宣言
  • 行動宣言募集
  • 婚活サポーター募集中
  • 婚活の秘訣
  • ながの結婚支援ネットワーク

投稿

오라클 blob 예제

2019年8月2日

CLOB 데이터로 작업하는 것은 일반적으로 BLOB 데이터로 작업하는 것과 동일합니다. 차이점은 Value 속성을 나타내는 것입니다. OracleLob.Value 속성에서 읽을 때 CLOB 및 NCLOB 데이터 형식의 경우 문자열을 얻을 수 있습니다. 데이터가 투명하게 디코딩되므로 문자 집합에 주의를 돌볼 필요가 없습니다. 그러나 원시 데이터가 필요한 경우 OracleLob의 스트리밍 기능을 사용할 수 있습니다. OracleLob.Value는 읽기 전용 속성이므로 OracleLob.Write 메서드를 사용하여만 LOB에 데이터를 쓸 수 있으며 인코딩이 수행되지 않습니다. oracle.sql.CLOB 클래스는 Oracle 데이터 서버가 CLOB 형식에 대해 지원하는 모든 문자 집합을 지원합니다. BLOB 데이터 형식을 사용하는 테이블의 예제 작성은 목록 1에 표시됩니다. 그것은 쉽게 CLOB가 될 수 있었다.

OraclePreparedStatement 개체 ops 및 my_blob라는 BLOB가 있는 경우 다음과 같이 BLOB를 데이터베이스에 작성합니다. 다음 예제에서는 데이터 벡터를 바이트 배열로 읽고 getAsciiOutputStream() 메서드를 사용하여 ASCII 데이터의 배열을 CLOB에 씁니다. getAsciiOutputStream()은 ASCII 출력 스트림을 반환하므로 출력을 oracle.sql.CLOB 데이터 입력으로 캐스팅해야 합니다. Oracle JDBC 드라이버를 구현할 때 이 기능은 8.1.6 데이터베이스와 8.1.6 JDBC OCI 드라이버를 사용하는 구성에만 지원됩니다. 데이터 손상이 발생할 수 있기 때문에 다른 구성에 이 기능을 사용하지 마십시오. OracleDataReader를 사용 하 여 LOB 필드의 값뿐만 아니라 LONG 및 LONG RAW와 같은 다른 유형을 검색할 수 있습니다. DML 및 PL/SQL 문에서 이러한 필드에 액세스해야 할 때 LOB 데이터 형식의 사용과의 차이가 분명해집니다. BLOB 및 CLOB 데이터 형식의 경우 LOB 로케이터(데이터에 대한 포인터)만 테이블 열에 저장됩니다.

실제 BLOB 및 CLOB 데이터는 별도의 테이블스페이스에 저장됩니다. 이는 LONG 또는 LONG RAW 형식의 데이터가 데이터베이스에 저장되는 방식의 차이입니다. 출력은 java.sql.Blob 및 Clob로 캐스팅됩니다. 또는 oracle.sql.BLOB 및 CLOB에 출력을 캐스팅하여 oracle.sql.* 클래스에서 제공하는 확장 기능을 활용할 수 있습니다. 예를 들어 위의 코드를 다시 작성하여 LOB 로케이터를 다음과 같이 얻을 수 있습니다. SQL SELECT 문을 사용하여 테이블 my_blob_table에서 결과 집합으로 BLOB 로케이터를 선택합니다. 데이터 조작의 결과는 BLOB의 길이를 바이트로 인쇄하는 것입니다. 표준 JDBC 준비 문(java.sql.PreparedStatement) 또는 호출 가능한 문(java.sql.CallableStatement)이 주어지면 표준 setter 메서드를 사용하여 다음과 같이 LOB 로케이터를 전달할 수 있습니다.

グローバルメニューへジャンプ

ページのトップへ