A LOBインタフェースの比較

この項内の表では、8つのLOBプログラム・インタフェースについて、LOBの操作に使用する関数とメソッドをリストして比較しています。表が2つに分かれているのは、単に8つのインタフェースすべてを記載するためです。

BLOBおよびCLOB用のAPI

表A-1 BLOBおよびCLOB (PL/SQL、JDBC、OCI、OCCI)用のAPI

PL/SQL:DBMS_LOB(dbmslob.sql) JDBC (Java)インタフェースjava.sql.Clobおよびjava.sql.Blob OCI (C/ocip.h) OCCI (C++/occiData.h)クラス: ClobおよびBlob
該当なし 該当なし OCILobLocatorIsInit() isInitialized()
ISSECUREFILE isSecureFile() 該当なし 該当なし
OPEN open() OCILobOpen() Open()
ISOPEN isOpen() OCILobIsOpen() isOpen()
CLOSE close() OCILobClose() Close()
CREATETEMPORARY createTemporary OCILobCreateTemporary() 該当なし
FREETEMPORARY freeTemporary OCILobFreeTemporary() 該当なし
ISTEMPORARY isTemporary OCILobIsTemporary() 該当なし
GETLENGTH length() OCIGetLobLength2() length()
GET_STORAGE_LIMIT 該当なし OCILobGetStorageLimit() 該当なし
GETCHUNKSIZE getChunkSize() OCILobGetChunkSize() getChunkSize()
READ Blob: getBytes() getBinaryStream() OciLobRead2() OCILobArrayRead() read()
Clob: getChars() getCharacterStream() getAsciiStream()
SUBSTR getSubString 該当なし 該当なし
INSTR position 該当なし 該当なし
該当なし 該当なし OCILobCharSetId() getCharSetId() (Clob only)
該当なし 該当なし OCILobCharSetForm() getCharSetForm (Clob only)
WRITE Blob: setBytes() setBinaryStream() OCILobWrite2() OCILobArrayWrite() write
Clob: setString() setCharacterStream()
WRITEAPPEND length()の後でputString()またはputBytes()の使用 OCILobWriteAppend2() 該当なし
ERASE 該当なし OCILobErase2() 該当なし
TRIM truncate() OCILobTrim2() trim
該当なし equal OCILobIsEqual() 演算子== / !=の使用
COMPARE DBMS_LOBの使用 該当なし 該当なし
APPEND length()の後でputString()またはputBytes()を使用 OCILobWriteAppend2() 該当なし
COPY readおよびwriteを使用 OCILobCopy2() copy()
演算子:=の使用 演算子=の使用 OCILobLocatorAssign() 演算子=の使用
CONVERTTOBLOB 該当なし 該当なし 該当なし
CONVERTTOCLOB 該当なし 該当なし 該当なし
該当なし 該当なし 該当なし closeStream()
GETOPTIONS 該当なし OCILobGetOptions() getOptions()
SETOPTIONS 該当なし OCILobSetOptions() setOptions()
GETCONTENTTYPE 該当なし OciLobGetContentType() getContentType()
SETCONTENTTYPE 該当なし OciLobSetContentType() setContentType()
FRAGMENT_DELETE FRAGMENT_INSERT FRAGMENT_MOVE FRAGMENT_REPLACE 該当なし 該当なし 該当なし

表A-2 BLOBおよびCLOB (PL/SQL、.NET、Pro*C/C++、Pro COBOL)用のAPI

PL/SQL:DBMS_LOB(dbmslob.sql) ODP.NETクラス: OracleClobおよびOracleBlob Pro*C/C++およびPro*COBOL
OPEN BeginChunkWrite OPEN
ISOPEN IsInChunkWriteMode DESCRIBE [ISOPEN]
CLOSE EndChunkWrite CLOSE
CREATETEMPORARY Add() CREATE TEMPORARY
FREETEMPORARY Dispose()およびClose() FREE TEMPORARY
ISTEMPORARY IsTemporary() DESCRIBE [ISTEMPORARY]
GETLENGTH Length() DESCRIBE [LENGTH]
GETCHUNKSIZE OptimumChunkSize() DESCRIBE [CHUNKSIZE]
READ Value Read READ
INSTR Search 該当なし
WRITE Write WRITE
WRITEAPPEND Append WRITE APPEND
ERASE Erase ERASE
TRIM SetLength TRIM
該当なし IsEqual 該当なし
COMPARE Compare 該当なし
APPEND Append APPEND
COPY CopyTo COPY
演算子:=の使用 Clone ASSIGN

BFILE用のAPI

表A-3 BFILE (PL/SQL、JDBC、OCI、OCCI)用のAPI

PL/SQL:DBMS_LOB(dbmslob.sql) JDBC (Java)インタフェースoracle.jdbc.OracleBfile OCI (C/ociap.h) OCCI (C++/occiData.h)クラス: Bfile
FILEEXISTS fileExists OciLobFileExist() fileExists()
FILEGETNAME getDirAlias, getName OCILobFileGetName() getDirAlias()getFileName()
SQL BFILENAME operator SQL BFILENAME operator OCILobFileSetName() setName()
OPEN openFile OCILobOpen() open()
ISOPEN isFileOpen() OCILobIsOpen() isOpen()
CLOSE closeFile OCILobClose() close()
FILECLOSEALL DBMS_LOBの使用 OCILobFileCloseAll() 該当なし
GETLENGTH length OCILobGetLength2() length()
READ getBytes()getBinaryStream() OCILobRead()OCILobArrayRead() read
SUBSTR getBytes 該当なし 該当なし
INSTR position 該当なし 該当なし
演算子:=の使用 演算子=の使用 OCILobLocatorAssign() 演算子=の使用
LOADCLOBFROMFILE LOADBLOBFROMFILE 該当なし OCILobLoadFromFile2() Blob.copy()またはClob.copy()
COMPARE 該当なし 該当なし 該当なし
該当なし equal OCILobIsEqual() 演算子==/!=の使用

表A-4 BFILE (PL/SQL、ODP.NET、Pro*C/C++およびPro*COBOL)用のAPI

PL/SQL:DBMS_LOB(dbmslob.sql) ODP.NETクラス: OracleBfile Pro*C/C++およびPro*COBOL
FILEEXISTS FileExists DESCRIBE [FILEEXISTS]
FILEGETNAME DirectoryName、Filename DESCRIBE [DIRECTORY, FILENAME]
SQL BFILENAME operator DirectoryName、Filename FILE SET
OPEN OpenFile OPEN
ISOPEN IsOpen() DESCRIBE [ISOPEN]
CLOSE CloseFile CLOSE
FILECLOSEALL 該当なし FILE CLOSE ALL
GETLENGTH Length DESCRIBE [LENGTH]
READ Value,Read READ
SUBSTR 該当なし 該当なし
INSTR Search 該当なし
演算子:=の使用 該当なし 該当なし
LOADCLOBFROMFILE LOADBLOBFROMFILE 該当なし 該当なし
COMPARE Compare 該当なし
該当なし IsEqual 該当なし