Oracle C++ Call Interface Programmer's Guide Release 2 (9.2) Part Number A96583-01 |
|
OCCI Classes and Methods, 5 of 22
The Clob class defines the common properties of objects of type CLOB. A CLOB is a large character object stored as a column value in a row of a database table. A Clob
object contains a logical pointer to a CLOB, not the CLOB itself.
Methods of the Clob class enable you to perform specific tasks related to Clob
objects, including methods for getting the length of a SQL CLOB, for materializing a CLOB on the client, and for extracting a part of the CLOB.
Methods in the ResultSet
and Statement
classes, such as getClob()
and setClob()
, enable you to access an SQL CLOB value.
To create a null Clob
object, use the syntax:
Clob();
The only methods valid on a null Clob
object are setNull
(), isNull
(), and operator=()
.
To create an uninitialized Clob
object, use the syntax:
Clob(const Connection *connectionp);
An uninitialized Clob
object can be initialized by:
The setEmpty
() method. The CLOB
can then be modified by inserting this CLOB into the table and retrieving it using SELECT
... FOR
UPDATE. The write
() method will modify the CLOB; however, the modified data will be flushed to the table only when the transaction is committed. Note that an insert
is not required.Clob
object to it.To create a copy of a Clob
object, use the syntax:
Clob(const Clob &srcClob);
This method appends a CLOB to the end of the current CLOB.
void append(const Clob &srcClob);
The CLOB to be appended to the current CLOB.
This method closes a CLOB.
void close();
This method closes the Stream
object obtained from the CLOB.
void closeStream(Stream *stream);
The Stream
object to be closed.
This method copies a part or all of a BFILE or CLOB into the current CLOB.
There are variants of syntax:
void copy(const Bfile &srcBfile, unsigned int numBytes, unsigned int dstOffset = 1, unsigned int srcOffset = 1);
void copy(const Clob &srcClob, unsigned int numBytes, unsigned int dstOffset = 1, unsigned int srcOffset = 1);
The BFILE from which the data is to be copied.
The CLOB from which the data is to be copied.
The number of characters to be copied from the source BFILE or
CLOB.
Valid values are:
Numbers greater than 0.
The starting position at which to begin writing data into the current CLOB.
Valid values are:
Numbers greater than or equal to 1.
The starting position at which to begin reading data from the source BFILE or CLOB.
Valid values are:
Numbers greater than or equal to 1.
This method returns the character set form of the CLOB.
CharSetForm getCharSetForm() const;
This method returns the character set ID of the CLOB, in string form.
string getCharSetId() const;
This method returns the chunk size of the CLOB.
When creating a table that contains a CLOB, the user can specify the chunking factor, which can be a multiple of Oracle blocks. This corresponds to the chunk size used by the LOB data layer when accessing and modifying the CLOB.
unsigned int getChunkSize() const;
This method returns a Stream
object from the CLOB. If a stream is already open, it is disallowed to open another stream on Clob object
, so the user must always close the stream before performing any Clob
object operations. The client's character set id and form will be used by default, unless they are explicityly set through setCharSetId()
and setCharSetForm()
calls.
Stream* getStream(unsigned int offset = 1, unsigned int amount = 0);
The starting position at which to begin reading data from the CLOB. If offset
is not specified, the data is written from the beginning of the CLOB.
Valid values are:
Numbers greater than or equal to 1.
The total number of consecutive characters to be read. If amount
is 0, the data will be read from the offset
value until the end of the CLOB.
This method tests whether the Clob object
is initialized. If the Clob
object is initialized, true is returned; otherwise, false is returned.
bool isInitialized() const;
This method tests whether the Clob
object is atomically null. If the Clob
object is atomically null, true is returned; otherwise, false is returned.
bool isNull() const;
This method tests whether the CLOB is open. If the CLOB is open, true is returned; otherwise, false is returned.
bool isOpen() const;
This method returns the number of characters in the CLOB.
unsigned int length() const;
This method opens the CLOB in read/write
or read-only mode.
void open(LObOpenMode mode = OCCI_LOB_READWRITE);
The mode the
CLOB is to be opened in.
Valid values are:
OCCI_LOB_READWRITE
OCCI_LOB_READONLY
This method assigns a CLOB to the current CLOB. The source CLOB gets copied to the destination CLOB only when the destination CLOB gets stored in the table.
Clob& operator=(const Clob &srcClob);
The CLOB to copy data from.
This method compares two Clob
objects for equality. Two Clob
objects are equal if they both refer to the same CLOB. Two null Clob
objects are not considered equal. If the Blob
objects are equal, then true is returned; otherwise, false is returned.
bool operator==(const Clob &srcClob) const;
The Clob object
to be compared with the current Clob
object.
This method compares two Clob objects
for inequality. Two Clob
objects are equal if they both refer to the same CLOB. Two null Clob
objects are not considered equal. If the Clob
objects are not equal, then true is returned; otherwise, false is returned.
bool operator!=(const Clob &srcClob) const;
The Clob
object to be compared with the current Clob
object.
This method reads a part or all of the CLOB into a buffer. The actual number of characters read is returned. The client's character set id and form will be used by default, unless they are explicityly set through setCharSetId()
and setCharSetForm()
calls.
unsigned int read(unsigned int amt, unsigned char *buffer, unsigned int bufsize, unsigned int offset = 1) const;
The number of consecutive characters to be read from the CLOB.
The buffer into which the CLOB data is to be read.
The size of the buffer
.
Valid values are:
Numbers greater than or equal to amt
.
The position at which to begin reading data from the CLOB. If offset
is not specified, the data is read from the beginning of the CLOB.
Valid values are:
Numbers greater than or equal to 1.
This method sets the Character set Id associated with Clob
. The charset id set will be used for readread/write and getStream() operations. If no value is set explicitly, the default client's character set id is used.
List of character sets supported is given in Globalization Support Guide Appendix A.
void setCharSetId( const OCCI_STD_NAMESPACE::string &charset);
Sets the character set form associated with the CLOB. The charset form set will be used for read/write and getStream() operations. If no value is set explicitly, by default, OCCI_SQLCS_IMPLICIT
will be used.
void setCharSetForm( CharSetForm csfrm );
The char set form for Clob
.
This method sets the Clob
object to empty.
void setEmpty();
This method sets the Clob
object to empty and initializes the connection pointer to the passed parameter.
void setEmpty( const Connection* connectionp);
The new connection pointer for the Clob
object.
This method sets the Clob
object to atomically null.
void setNull();
This method truncates the CLOB to the new length specified.
void trim(unsigned int newlen);
The new length of the CLOB.
Valid values are:
Numbers less than or equal to the current length of the CLOB.
This method writes data from a buffer into a CLOB. This method implicitly opens the CLOB, copies the buffer into the CLOB, and implicitly closes the CLOB. If the CLOB is already open, use writeChunk()
instead. The actual number of characters written is returned. The client's character set id and form will be used by default, unless they are explicitly set through setCharSetId()
and setCharSetForm()
calls.
unsigned int write(unsigned int amt, unsigned char *buffer, unsigned int bufsize, unsigned int offset = 1);
The number of consecutive characters to be written to the CLOB.
The buffer containing the data to be written to the CLOB.
The size of the buffer containing the data
to be written to the CLOB.
Valid values are:
Numbers greater than or equal to amt
.
The position at which to begin writing data into the CLOB. If offset
is not specified, the data is written from the beginning of the CLOB.
Valid values are:
Numbers greater than or equal to 1.
This method writes data from a buffer into a previously opened CLOB. The actual number of characters written is returned. The client's character set id and form will be used by default, unless they are explicitly set through setCharSetId()
and setCharSetForm()
calls.
unsigned int writechunk(unsigned int amt, unsigned char *buffer, unsigned int bufsize, unsigned int offset = 1);
The number of consecutive characters to be written to the CLOB.
The buffer containing the data to be written to the CLOB.
The size of the buffer containing the data to be written to the CLOB.
Valid values are:
Numbers greater than or equal to amt
.
The position at which to begin writing data into the CLOB. If offset
is not specified, the data is written from the beginning of the CLOB.
Valid values are:
Numbers greater than or equal to 1.
|
Copyright © 2001, 2002 Oracle Corporation. All Rights Reserved. |
|