- Page 1 and 2:
Oracle® C++ Call Interface Program
- Page 3 and 4:
List List of Figures Tables Content
- Page 5 and 6:
Null and Truncated Data............
- Page 7 and 8:
6 Metadata Overview of Metadata ...
- Page 9 and 10:
length() ..........................
- Page 11 and 12:
flushCache().......................
- Page 13 and 14:
getSecond() .......................
- Page 15 and 16:
cos()..............................
- Page 17 and 18:
operator new().....................
- Page 19 and 20:
isTruncated() .....................
- Page 21 and 22:
setCharacterStreamMode() ..........
- Page 23 and 24:
Index occiinh.typ .................
- Page 25 and 26:
List of Tables 2-1 Normal Data - No
- Page 27 and 28:
Oracle C++ Call Interface Programme
- Page 29 and 30:
Preface The Oracle C++ Call Interfa
- Page 31 and 32:
Related Documentation Chapter 4, "D
- Page 33 and 34:
Conventions in Text We use various
- Page 35 and 36:
Convention Meaning Example UPPERCAS
- Page 37 and 38:
What’s New in Orace C++ Call Inte
- Page 39:
■ Number Class ■ operator signe
- Page 43 and 44:
1 Introduction to OCCI This chapter
- Page 45 and 46:
Building an OCCI Application Overvi
- Page 47 and 48:
Processing of SQL Statements In an
- Page 49 and 50:
Overview of PL/SQL SELECT dname FRO
- Page 51 and 52:
Object Support Client-Side Object C
- Page 53 and 54:
Metadata Class Object Support ■ B
- Page 55 and 56:
2 Relational Programming This chapt
- Page 57 and 58:
. . . stmt->closeResultSet(rs); con
- Page 59 and 60:
const string poolUserName = "SCOTT"
- Page 61 and 62:
■ executeArrayUpdate: To execute
- Page 63 and 64:
Standard Statements Types of SQL St
- Page 65 and 66:
Types of SQL Statements in the OCCI
- Page 67 and 68:
Executing SQL Queries Executing SQL
- Page 69 and 70:
Specifying the Query } Executing SQ
- Page 71 and 72:
Status Definitions Executing Statem
- Page 73 and 74:
Executing Statements Dynamically No
- Page 75 and 76:
Null and Truncated Data Error Handl
- Page 77 and 78:
Advanced Relational Techniques In T
- Page 79 and 80:
Note: Advanced Relational Technique
- Page 81 and 82:
Optimizing Performance Advanced Rel
- Page 83 and 84:
Advanced Relational Techniques indi
- Page 85 and 86:
3 Object Programming This chapter p
- Page 87 and 88:
Persistent Objects Working with Obj
- Page 89 and 90:
Values In the context of this manua
- Page 91 and 92:
See Also: Developing an OCCI Object
- Page 93 and 94:
Figure 3-1 Basic Object Operational
- Page 95 and 96:
Developing an OCCI Object Applicati
- Page 97 and 98:
Overview of Associative Access Maxi
- Page 99 and 100:
Retrieving an Object Reference (REF
- Page 101 and 102:
} Overview of Navigational Access T
- Page 103 and 104:
Overview of Complex Object Retrieva
- Page 105 and 106:
■ The reference to the root purch
- Page 107 and 108:
} void *operator new(size_t size, c
- Page 109 and 110:
Freeing Objects Type Inheritance Ty
- Page 111 and 112:
Type Inheritance Instance substitut
- Page 113 and 114:
A Sample OCCI Application void *ope
- Page 115 and 116:
} cout
- Page 117 and 118:
} A Sample OCCI Application /* comm
- Page 119 and 120:
4 Datatypes This chapter is a refer
- Page 121 and 122:
Internal Datatypes Note: There are
- Page 123 and 124:
External Datatypes ■ OCCI_SQLT_CH
- Page 125 and 126:
Table 4-2 External Datatypes, C++ D
- Page 127 and 128:
External Datatypes CHARZ The extern
- Page 129 and 130:
External Datatypes FLOAT The extern
- Page 131 and 132:
External Datatypes LONG The externa
- Page 133 and 134:
OCCI BYTES OCCI CLOB OCCI DATE See
- Page 135 and 136:
External Datatypes When RAW data in
- Page 137 and 138:
External Datatypes is not an intege
- Page 139 and 140:
Table 4-5 Data Conversions Internal
- Page 141 and 142:
LONG RAW I/O LONG VARRAW I/O OCCI B
- Page 143 and 144:
The following topics are covered in
- Page 145 and 146:
External LOBs (BFILEs) Overview of
- Page 147 and 148:
Table 5-1 OCCI LOB Classes and Meth
- Page 149 and 150:
Creating LOBs Table 5-1 OCCI LOB Cl
- Page 151 and 152:
LOB Classes and Methods Note: For i
- Page 153 and 154:
{ Blob blob=rset->getBlob(1); if(bl
- Page 155 and 156:
} blob.writeChunk(, buffer, BUFSIZE
- Page 157 and 158:
Updating LOBs LOB Classes and Metho
- Page 159 and 160:
Objects with LOB Attributes 5. Repi
- Page 161 and 162:
6 Metadata This chapter describes h
- Page 163 and 164:
Describing Database Metadata You ob
- Page 165 and 166:
Metatdata Code Examples Table 6-1 A
- Page 167 and 168:
Describing Database Metadata /* Cal
- Page 169 and 170:
Attribute Reference . . /* Create a
- Page 171 and 172:
Table 6-2 Attributes Belonging to A
- Page 173 and 174:
Package Attributes Type Attributes
- Page 175 and 176:
Type Attribute Attributes Table 6-8
- Page 177 and 178:
Collection Attributes Table 6-10 At
- Page 179 and 180:
Synonym Attributes Sequence Attribu
- Page 181 and 182:
Table 6-14 Attributes Belonging to
- Page 183 and 184:
List Attributes Table 6-15 Attribut
- Page 185 and 186:
Table 6-18 Attributes Specific to D
- Page 187 and 188:
7 How to Use the Object Type Transl
- Page 189 and 190:
How to Use the OTT Utility the Type
- Page 191 and 192:
How to Use the OTT Utility Example
- Page 193 and 194:
}; virtual void writeSQL(oracle::oc
- Page 195 and 196:
} streamOCCI_.setString(name); stre
- Page 197 and 198:
Invoking the OTT Utility For global
- Page 199 and 200:
Invoking the OTT Utility userid Par
- Page 201 and 202:
Overview of the INTYPE File The lin
- Page 203 and 204:
OTT Utility Datatype Mappings The O
- Page 205 and 206:
OTT Utility Datatype Mappings Note:
- Page 207 and 208:
the_clob CLOB, the_object object_ty
- Page 209 and 210:
OTT Utility Datatype Mappings When
- Page 211 and 212:
class other_type : public oracle::o
- Page 213 and 214:
Overview of the OUTTYPE File its ve
- Page 215 and 216:
Figure 7-1 The OTT Utility with OCC
- Page 217 and 218:
The OTT Utility and OCCI Applicatio
- Page 219 and 220:
}; static void *readSQL(void *ctxOC
- Page 221 and 222:
public: }; void *operator new(size_
- Page 223 and 224:
{ FullName *objOCCI_ = (FullName *)
- Page 225 and 226:
excep.setErrorCtx(ctxOCCI_); } retu
- Page 227 and 228:
} setVector(streamOCCI_, PREV_ADDR_
- Page 229 and 230:
TYPE SCOTT.FULL_NAME AS FullName VE
- Page 231 and 232:
}; The OTT Utility and OCCI Applica
- Page 233 and 234:
***********************************
- Page 235 and 236:
#endif Map Registry Function The OT
- Page 237 and 238:
The OTT Utility and OCCI Applicatio
- Page 239 and 240:
public: }; void *operator new(size_
- Page 241 and 242:
}; static void *readSQL(void *ctxOC
- Page 243 and 244:
eturn; } void CFullName::writeSQL(o
- Page 245 and 246:
The OTT Utility and OCCI Applicatio
- Page 247 and 248:
eturn oracle::occi::PObject::operat
- Page 249 and 250:
Properties of OTT Markers Following
- Page 251 and 252:
Where the Markers Can Be Used Carry
- Page 253 and 254:
Carrying Forward User Added Code be
- Page 255 and 256:
DROP TABLE PERSON_TAB; DROP TABLE A
- Page 257 and 258:
Carrying Forward User Added Code AD
- Page 259 and 260:
}; PERSON_O(); Carrying Forward Use
- Page 261 and 262:
addr = new_addr; this->markModified
- Page 263 and 264:
} return; } void ADDRESS_O::writeSQ
- Page 265 and 266:
} streamOCCI_.setString(last_name);
- Page 267 and 268:
mdemo1m.cpp // --------------------
- Page 269 and 270:
conn->terminateStatement(stmt); //
- Page 271 and 272:
Example OCCI Application Example OC
- Page 273 and 274:
■ Example of C++ Source File for
- Page 275 and 276:
OCCI_STD_NAMESPACE::string STATE; O
- Page 277 and 278:
}; void *operator new(size_t size);
- Page 279 and 280:
OCCI_STD_NAMESPACE::string CFullNam
- Page 281 and 282:
} streamOCCI_.setString(FirstName);
- Page 283 and 284:
{ if (objOCCI_->isNull()) streamOCC
- Page 285 and 286:
OCCI_STD_NAMESPACE::string CPerson:
- Page 287 and 288:
{ return oracle::occi::PObject::ope
- Page 289 and 290:
#ifndef CPERSON_ORACLE # include "c
- Page 291 and 292:
Example OCCI Application /*********
- Page 293 and 294:
* initialize MyFullName */ MyFullNa
- Page 295 and 296:
* Display all the information of My
- Page 297 and 298:
Example OCCI Application conn, and
- Page 299 and 300:
} RefAny jillrefany = resultSet2->g
- Page 301 and 302:
Connection *conn = env->createConne
- Page 303 and 304:
OTT Command Line Syntax OTT Utility
- Page 305 and 306:
■ CPPFILE Parameter ■ ERRTYPE P
- Page 307 and 308:
OTT Utility Reference CONFIG Parame
- Page 309 and 310:
INITFUNC=filename OTT Utility Refer
- Page 311 and 312:
See Also: "SCHEMA_NAMES Usage" on p
- Page 313 and 314: Structure of the INTYPE File OTT Ut
- Page 315 and 316: ■ It appears in the INTYPE file.
- Page 317 and 318: struct px1_ind col1 }; typedef stru
- Page 319 and 320: OTT Utility Reference The Pro*C/C++
- Page 321 and 322: OTT Utility Reference Once the OTT
- Page 323: This part contains one chapter: ■
- Page 326 and 327: Summary of OCCI Classes Summary of
- Page 328 and 329: OCCI Classes and Methods using Decl
- Page 330 and 331: Bfile Class close() closeStream() T
- Page 332 and 333: Bfile Class isInitialized() isNull(
- Page 334 and 335: Bfile Class operator!=() read() Syn
- Page 336 and 337: Blob Class Blob Class The Blob clas
- Page 338 and 339: Blob Class close() closeStream() co
- Page 340 and 341: Blob Class getStream() isInitialize
- Page 342 and 343: Blob Class operator==() operator!=
- Page 344 and 345: Blob Class setNull() trim() write()
- Page 346 and 347: Blob Class buffer The buffer contai
- Page 348 and 349: Bytes Class getBytes() isNull() Par
- Page 350 and 351: Clob Class Clob Class The Clob clas
- Page 352 and 353: Clob Class append() close() closeSt
- Page 354 and 355: Clob Class getCharSetId() getChunkS
- Page 356 and 357: Clob Class open() operator=() opera
- Page 358 and 359: Clob Class setCharSetId() setCharSe
- Page 360 and 361: Clob Class write() Valid values are
- Page 362 and 363: Connection Class Connection Class T
- Page 366 and 367: Connection Class Syntax LNOCIServer
- Page 368 and 369: ConnectionPool Class createConnecti
- Page 370 and 371: ConnectionPool Class getMinConnecti
- Page 372 and 373: ConnectionPool Class Syntax void te
- Page 374 and 375: Date Class Summary of Date Methods
- Page 376 and 377: Date Class addDays() addMonths() da
- Page 378 and 379: Date Class getDate() getSystemDate(
- Page 380 and 381: Date Class operator==() operator!=(
- Page 382 and 383: Date Class operator
- Page 384 and 385: Date Class toZone() const string &n
- Page 386 and 387: Environment Class Environment Class
- Page 388 and 389: Environment Class Syntax Connection
- Page 390 and 391: Environment Class getCacheMaxSize()
- Page 392 and 393: Environment Class terminateConnecti
- Page 394 and 395: IntervalDS Class Constructs an Inte
- Page 396 and 397: IntervalDS Class fromText() getDay(
- Page 398 and 399: IntervalDS Class operator*=() opera
- Page 400 and 401: IntervalDS Class operator/=() opera
- Page 402 and 403: IntervalDS Class operator-=() opera
- Page 404 and 405: IntervalDS Class toText() This meth
- Page 406 and 407: IntervalYM Class The following code
- Page 408 and 409: IntervalYM Class getMonth() getYear
- Page 410 and 411: IntervalYM Class operator!=() opera
- Page 412 and 413: IntervalYM Class operator
- Page 414 and 415:
IntervalYM Class set() setNull() to
- Page 416 and 417:
Map Class Map Class The Map class i
- Page 418 and 419:
MetaData Class MetaData Class A Met
- Page 420 and 421:
MetaData Class Summary of MetaData
- Page 422 and 423:
MetaData Class getMetaData() getNum
- Page 424 and 425:
MetaData Class getVector() operator
- Page 426 and 427:
Number Class Translates a native lo
- Page 428 and 429:
Number Class nu4 = nu1 + nu2; /* Co
- Page 430 and 431:
Number Class Table 8-14 Number Meth
- Page 432 and 433:
Number Class arcTan2() ceil() cos()
- Page 434 and 435:
Number Class hypCos() hypSin() hypT
- Page 436 and 437:
Number Class operator++() operator-
- Page 438 and 439:
Number Class operator-() operator-(
- Page 440 and 441:
Number Class operator>=() operator=
- Page 442 and 443:
Number Class operator%=() operator+
- Page 444 and 445:
Number Class operator long() operat
- Page 446 and 447:
Number Class round() setNull() shif
- Page 448 and 449:
Number Class toText() trunc() Synta
- Page 450 and 451:
PObject Class PObject Class OCCI pr
- Page 452 and 453:
PObject Class isLocked() isNull() l
- Page 454 and 455:
PObject Class operator new() pin()
- Page 456 and 457:
Ref Class Ref Class The mapping in
- Page 458 and 459:
Ref Class isClear() isNull() markDe
- Page 460 and 461:
Ref Class operator=() ptr() Paramet
- Page 462 and 463:
Ref Class setNull() unmarkDelete()
- Page 464 and 465:
RefAny Class getConnection() getRef
- Page 466 and 467:
ResultSet Class ResultSet Class Res
- Page 468 and 469:
ResultSet Class Table 8-18 ResultSe
- Page 470 and 471:
ResultSet Class getBfile() getBlob(
- Page 472 and 473:
ResultSet Class getCurrentStreamCol
- Page 474 and 475:
ResultSet Class getFloat() getInt()
- Page 476 and 477:
ResultSet Class getNumber() getObje
- Page 478 and 479:
ResultSet Class getString() getTime
- Page 480 and 481:
ResultSet Class vector &vect); void
- Page 482 and 483:
ResultSet Class isNull() isTruncate
- Page 484 and 485:
ResultSet Class Parameters setBinar
- Page 486 and 487:
ResultSet Class in the *length para
- Page 488 and 489:
ResultSet Class setMaxColumnSize()
- Page 490 and 491:
SQLException Class getMessage() set
- Page 492 and 493:
Statement Class Table 8-20 Statemen
- Page 494 and 495:
Statement Class Table 8-20 Statemen
- Page 496 and 497:
Statement Class closeStream() execu
- Page 498 and 499:
Statement Class arrayLength paramet
- Page 500 and 501:
Statement Class getBfile() getBlob(
- Page 502 and 503:
Statement Class getCurrentStreamIte
- Page 504 and 505:
Statement Class getFloat() getInt()
- Page 506 and 507:
Statement Class getObject() getOCIS
- Page 508 and 509:
Statement Class getString() getTime
- Page 510 and 511:
Statement Class vector &vect; void
- Page 512 and 513:
Statement Class isNull() isTruncate
- Page 514 and 515:
Statement Class setAutoCommit() set
- Page 516 and 517:
Statement Class setBytes() x The pa
- Page 518 and 519:
Statement Class Syntax void setDate
- Page 520 and 521:
Statement Class setDataBufferArray(
- Page 522 and 523:
Statement Class setDouble() setErro
- Page 524 and 525:
Statement Class setIntervalDS() set
- Page 526 and 527:
Statement Class setNumber() setObje
- Page 528 and 529:
Statement Class setRef() setRowid()
- Page 530 and 531:
Statement Class setUInt() setVector
- Page 532 and 533:
Statement Class void setVector(Stat
- Page 534 and 535:
Statement Class status() sqltype sq
- Page 536 and 537:
Stream Class readLastBuffer() write
- Page 538 and 539:
Timestamp Class Timestamp Class Thi
- Page 540 and 541:
Timestamp Class } if(reft() on page
- Page 542 and 543:
Timestamp Class getDate() getTime()
- Page 544 and 545:
Timestamp Class intervalSub() isNul
- Page 546 and 547:
Timestamp Class operator>=() operat
- Page 548 and 549:
Timestamp Class setNull() setTime()
- Page 550 and 551:
Timestamp Class toText() Return str
- Page 553 and 554:
A OCCI Demonstration Programs Oracl
- Page 555 and 556:
OCCI Demonstration Programs # 2. A
- Page 557 and 558:
OCCI Demonstration Programs # 2. A
- Page 559 and 560:
OCCI Demonstration Programs occidem
- Page 561 and 562:
occiblob.cpp build_static: $(OBJS)
- Page 563 and 564:
} /** * printing the blob data as i
- Page 565 and 566:
occiclob.cpp { Blob blob = rset->ge
- Page 567 and 568:
* populating the clob; */ void popu
- Page 569 and 570:
int clobLength=clob.length (); cout
- Page 571 and 572:
~occicoll () { env->terminateConnec
- Page 573 and 574:
Deleting a row in a nested table vo
- Page 575 and 576:
occidesc.cpp cout
- Page 577 and 578:
OCCI Demonstration Programs cout
- Page 579 and 580:
OCCI Demonstration Programs else co
- Page 581 and 582:
cout
- Page 583 and 584:
case OCCI_SQLT_LBI : return "LONG R
- Page 585 and 586:
void insertBind (int c1, string c2)
- Page 587 and 588:
{ OCCI Demonstration Programs strin
- Page 589 and 590:
using namespace oracle::occi; using
- Page 591 and 592:
fs_obj->setpartner(fs_partner); fs_
- Page 593 and 594:
fs_ref->getleader(); /* Leader's Pa
- Page 595 and 596:
occiobj.cpp OCCI Demonstration Prog
- Page 597 and 598:
}catch(SQLException ex) { cout
- Page 599 and 600:
occipobj.typ occipobj.cpp demo->upd
- Page 601 and 602:
OCCI Demonstration Programs /** * I
- Page 603 and 604:
OCCI Demonstration Programs RefAny
- Page 605 and 606:
** * Destructor for the occipool te
- Page 607 and 608:
#include #include using namespace
- Page 609 and 610:
occistre.cpp OCCI Demonstration Pro
- Page 611 and 612:
delete (demo); cout
- Page 613 and 614:
A application-provided serializatio
- Page 615 and 616:
OCCI DATE, 4-15 OCCI INTERVALDS, 4-
- Page 617 and 618:
N RefAny methods, 8-139, 8-143 setD
- Page 619 and 620:
RESULT_SET_AVAILABLE status, 2-17,