2595 lines
116 KiB
C
2595 lines
116 KiB
C
|
/* @(#)ort.h 1.44 95/07/07 */
|
||
|
|
||
|
/* Copyright (c) 1994, 2005, Oracle. All rights reserved. */
|
||
|
|
||
|
/*
|
||
|
NAME
|
||
|
|
||
|
ORT - ORacle's external open Type interface to the open type manager (OTM)
|
||
|
|
||
|
DESCRIPTION
|
||
|
|
||
|
The open type manager interface includes dynamic type operations to
|
||
|
create, delete, update, and access types. See the "Functional
|
||
|
Specification for Oracle Object Call Interface (Objects Project),
|
||
|
Version 1.0" for a user level description of the OTM. For a more
|
||
|
detailed description, see the "Component Document for the Open Type
|
||
|
Manager, Version 1.0".
|
||
|
|
||
|
NOTE: MOST Of the functions in this header file are being desupported.
|
||
|
Please use the OCIDescribeAny interface as described in oci.h
|
||
|
instead.
|
||
|
The OCIType, OCITypeElem, OCITypeMethod abstract types continue
|
||
|
to be supported. The only two functions that remain to be documented
|
||
|
are OCITypeArrayByName and OCITypeArrayByRef.
|
||
|
All obsolete types/functions are marked accordingly below.
|
||
|
|
||
|
RELATED DOCUMENTS
|
||
|
|
||
|
For the functional specification for the OTM, see:
|
||
|
[1] Kotsovolos, Susan, "Functional Specification for Oracle Object
|
||
|
Call Interface (Objects Project), Version 1.0", Oracle
|
||
|
Corporation, February 1995.
|
||
|
For the internal design of the OTM, see the following:
|
||
|
[2] Kotsovolos, Susan, "Component Document for the Open Type Manager",
|
||
|
Oracle Corporation, November 1994.
|
||
|
[3] Kotsovolos, Susan, "Design for The Open Type Manager, Oracle
|
||
|
Object Management Subsystem Version 1.0", Oracle Corporation,
|
||
|
March 1994.
|
||
|
[4] Kotsovolos, Susan and Tin A. Nguyen, "The Open Type Manager",
|
||
|
Oracle Corporation, March 1994.
|
||
|
[5] Kotsovolos, Susan and Tin A. Nguyen, "Schema Evolution",
|
||
|
Oracle Corporation, March 1994.
|
||
|
For a description of the types the OTM must support, see:
|
||
|
[6] Nguyen, Tin A., "The Open Type System", Oracle Corporation,
|
||
|
February 1994.
|
||
|
|
||
|
INSPECTION STATUS
|
||
|
|
||
|
Inspection date:
|
||
|
Inspection status:
|
||
|
Estimated increasing cost defects per page:
|
||
|
Rule sets:
|
||
|
|
||
|
ACCEPTANCE REVIEW STATUS
|
||
|
|
||
|
Review date:
|
||
|
Review status:
|
||
|
Reviewers:
|
||
|
|
||
|
|
||
|
**** ALL OBSOLETE FUNCTIONS/TYPES ARE MARKED ACCORDINGLY ***
|
||
|
|
||
|
EXPORT FUNCTIONS
|
||
|
|
||
|
None
|
||
|
|
||
|
PUBLIC DATA STRUCTURES
|
||
|
|
||
|
OCIType - type descriptor in the object cache
|
||
|
OCITypeElem - type element descriptor in the object cache
|
||
|
(used for attributes and paramters)
|
||
|
OCITypeCode - Open Type System type code.
|
||
|
OCITypeMethod - method descriptor in the object cache
|
||
|
OCITypeParamMode - parameter modes (ie. IN, IN-OUT etc)
|
||
|
|
||
|
PUBLIC FUNCTIONS
|
||
|
|
||
|
ITERATOR (for OCITypeAttrNext and OCITypeMethodNext)
|
||
|
|
||
|
OCITypeIterNew - ** OBSOLETE ** Create new instance of an iteraton.
|
||
|
OCITypeIterSet - ** OBSOLETE ** Initialize iterator.
|
||
|
OCITypeIterFree - ** OBSOLETE ** Free instance of iterator.
|
||
|
|
||
|
TYPE GET
|
||
|
|
||
|
OCITypeByName - ** OBSOLETE ** Get a type by name.
|
||
|
OCITypeArrayByName - Get an array of types by their names.
|
||
|
OCITypeByRef - ** OBSOLETE ** Get a type by its CREF.
|
||
|
OCITypeArrayByRef - Get an array of types by their CREFs.
|
||
|
|
||
|
TYPE ACCESSORS
|
||
|
|
||
|
OCITypeName - ** OBSOLETE ** OCI Get a type's name.
|
||
|
OCITypeSchema - ** OBSOLETE ** OCI Get a type's schema name.
|
||
|
OCITypeTypeCode - ** OBSOLETE ** OCI Get a type's type code.
|
||
|
OCITypeVersion - ** OBSOLETE ** OCI Get a Type's user-readable Version.
|
||
|
OCITypeAttrs - ** OBSOLETE ** OCI Get a Type's Number of Attributes.
|
||
|
OCITypeMethods - ** OBSOLETE ** OCI Get a Type's Number of Methods.
|
||
|
|
||
|
TYPE ELEMENT ACCESSORS (they represent attributes/parameters/results)
|
||
|
|
||
|
OCITypeElemName - ** OBSOLETE ** Get a type element's (only for
|
||
|
attributes) name.
|
||
|
OCITypeElemType - ** OBSOLETE ** Get a type element's type
|
||
|
descriptor.
|
||
|
OCITypeElemTypeCode - ** OBSOLETE ** Get a type element's typecode.
|
||
|
OCITypeElemParameterizedType - ** OBSOLETE ** Get a type element's
|
||
|
parameterized type's type descriptor.
|
||
|
OCITypeElemNumPrec - ** OBSOLETE ** Get a number's precision.
|
||
|
OCITypeElemNumScale - ** OBSOLETE ** Get a decimal or oracle Number's
|
||
|
Scale
|
||
|
OCITypeElemCharSetID - ** OBSOLETE ** Get a fixed or variable length
|
||
|
string's character set ID.
|
||
|
OCITypeElemCharSetForm - ** OBSOLETE ** Get a fixed or variable length
|
||
|
string's character set form (how
|
||
|
character set information has
|
||
|
been specified).
|
||
|
OCITypeElemLength - ** OBSOLETE ** Get a raw, fixed or variable
|
||
|
length string's length.
|
||
|
OCITypeElemParamMode - ** OBSOLETE ** Get element's parameter's mode
|
||
|
(only valid for parameter).
|
||
|
OCITypeElemDefaultValue - ** OBSOLETE ** Get element's Default Value.
|
||
|
|
||
|
ATTRIBUTE ACCESSORS
|
||
|
|
||
|
OCITypeAttrByName - ** OBSOLETE ** Get an Attribute by Name.
|
||
|
OCITypeAttrNext - ** OBSOLETE ** Get an Attribute by Iteration.
|
||
|
|
||
|
COLLECTION ACCESSORS
|
||
|
|
||
|
OCITypeCollTypeCode - ** OBSOLETE ** Get a named collection's typecode.
|
||
|
OCITypeCollElem - ** OBSOLETE ** Get a named collection's element's
|
||
|
type element information.
|
||
|
OCITypeCollSize - ** OBSOLETE ** Get a named collection's size in
|
||
|
number of elements.
|
||
|
|
||
|
METHOD ACCESSORS
|
||
|
|
||
|
OCITypeMethodOverload - ** OBSOLETE ** Get number of overloaded methods
|
||
|
with the given method name.
|
||
|
(no direct equivalent for
|
||
|
OCIDescribe interface)
|
||
|
OCITypeMethodByName - ** OBSOLETE ** Get one or more methods by name.
|
||
|
OCITypeMethodNext - ** OBSOLETE ** Iterate to the next method to
|
||
|
retrieve.
|
||
|
OCITypeMethodName - ** OBSOLETE ** Get method's name.
|
||
|
OCITypeMethodEncap - ** OBSOLETE ** Get method's encapsulation level.
|
||
|
OCITypeMethodFlags - ** OBSOLETE ** et method's flags.
|
||
|
OCITypeMethodMap - ** OBSOLETE ** Get type's map function.
|
||
|
OCITypeMethodOrder - ** OBSOLETE ** Get type's order function.
|
||
|
OCITypeMethodParams - ** OBSOLETE ** Get a method's number of
|
||
|
parameters.
|
||
|
|
||
|
RESULT ACCESSORS
|
||
|
|
||
|
OCITypeResult - ** OBSOLETE ** OCI Get a method's Result.
|
||
|
|
||
|
See also ATTRIBUTE/PARAMETER/RESULT TYPE ACCESSORS.
|
||
|
|
||
|
PARAMETER ACCESSORS
|
||
|
|
||
|
OCITypeParamByPos - ** OBSOLETE ** Get a Parameter in a method By
|
||
|
Position.
|
||
|
OCITypeParamByName - ** OBSOLETE ** Get a Parameter in a method By Name.
|
||
|
OCITypeParamPos - ** OBSOLETE ** Get a Parameter's PoSition in a
|
||
|
method.
|
||
|
|
||
|
CALL GRAPHS:
|
||
|
|
||
|
Only type accessors are supported for 8.0.
|
||
|
** OBSOLETE ** please use OCIDescribe interface
|
||
|
|
||
|
TYPE ACCESSOR EXAMPLE
|
||
|
|
||
|
CREATE TYPE CAR
|
||
|
(
|
||
|
name vstring,
|
||
|
age number,
|
||
|
number car_age; /o Oracle number o/
|
||
|
weight car_weight; /o abstract type o/
|
||
|
|
||
|
PUBLIC:
|
||
|
|
||
|
/o methods o/
|
||
|
car(orlvs a_name, number an_age, WEIGHT a_weight);
|
||
|
~car();
|
||
|
inline number get_age() const;
|
||
|
|
||
|
/o relative ordering (map) functions o/
|
||
|
number car_map
|
||
|
);
|
||
|
|
||
|
/o the following code accesses the type created above o/
|
||
|
|
||
|
ub1 meth_flags;
|
||
|
ub4 i, j;
|
||
|
ub4 text_len, position;
|
||
|
ub4 count;
|
||
|
ub4 length;
|
||
|
OCITypeCode typecode;
|
||
|
OCIRef *attr_ref;
|
||
|
OCIRef *param_ref;
|
||
|
OCIType *tdo, new_tdo, final_tdo;
|
||
|
OCITypeElem *elem;
|
||
|
OCITypeIter *iterator_ort;
|
||
|
oratext (*names)[];
|
||
|
ub4 lengths[];
|
||
|
ub4 *positions;
|
||
|
oratext *name;
|
||
|
oratext name_buffer[M_IDEN];
|
||
|
|
||
|
/o initialize the references o/
|
||
|
DISCARD orlrini(env, err, (dvoid *)&attr_ref);
|
||
|
DISCARD orlrini(env, err, (dvoid *)¶m_ref);
|
||
|
|
||
|
/o ----------------- GET INFORMATION ABOUT A TYPE ----------------- o/
|
||
|
|
||
|
/o start a transaction o/
|
||
|
|
||
|
/o Pin the type until the end of the transaction. Pinning the type is
|
||
|
o required before using any type accessors.
|
||
|
o/
|
||
|
if (OCITypeByName(env, err, svc, (oratext *)0, 0, "CAR", strlen("CAR"),
|
||
|
OCI_DURATION_TRANS, &car_ref, &car_tdo) != OCI_SUCCESS)
|
||
|
/o error o/ ;
|
||
|
|
||
|
/o get the type's name o/
|
||
|
if (!memcmp(OCITypeName(env, err, car_tdo, &text_len), "person",
|
||
|
text_len))
|
||
|
/o do something o/ ;
|
||
|
|
||
|
/o get the type's schema name o/
|
||
|
if (!memcmp(OCITypeSchema(env, err, car_tdo, &text_len), "john",
|
||
|
text_len))
|
||
|
/o do something o/ ;
|
||
|
|
||
|
/o get the type code of the type o/
|
||
|
if (OCITypeTypeCode(env, err, car_tdo) == OCI_TYPECODE_ADT)
|
||
|
/o do something o/ ;
|
||
|
|
||
|
/o get the type version o/
|
||
|
if (!memcmp(OCITypeVersion(env, err, car_tdo, &text_len), "1", text_len))
|
||
|
/o do something o/ ;
|
||
|
|
||
|
/o ------- GET FLATTENED POSITION OF AN ATTRIBUTES IN A TYPE ------- o/
|
||
|
|
||
|
names = malloc(sizeof(oratext *) * 2);
|
||
|
names[0] = malloc(strlen("car_weight"));
|
||
|
names[1] = malloc(strlen("ounces"));
|
||
|
memcpy(names[0], "car_weight", strlen("car_weight"));
|
||
|
memcpy(names[1], "ounces", strlen("ounces"));
|
||
|
|
||
|
lengths = malloc(sizeof(ub4) * 2);
|
||
|
lengths[0] = strlen("car_weight");
|
||
|
lengths[1] = strlen("ounces");
|
||
|
|
||
|
/o ---------- GET IMMEDIATE ATTRIBUTES IN A TYPE ---------- o/
|
||
|
|
||
|
/o loop through all attributes in the type with iterator o/
|
||
|
if (OCITypeIterNew(env, err, car_tdo, &iterator_ort) != OCI_SUCCESS)
|
||
|
/o do something o/
|
||
|
|
||
|
while (OCITypeAttrNext(env, err, iterator_ort, &ado) != OCI_NO_DATA)
|
||
|
{
|
||
|
/o get the attribute's name o/
|
||
|
if (!memcmp(OCITypeElemName(env, err, ado, &text_len),
|
||
|
"tiger", text_len))
|
||
|
/o do something o/ ;
|
||
|
|
||
|
/o get the attribute's type descriptor o/
|
||
|
if (OCITypeElemType(env, err, ado, &tdo) != OCI_SUCCESS)
|
||
|
/o error o/ ;
|
||
|
|
||
|
/o get the attribute's type code o/
|
||
|
typecode = OCITypeElemTypeCode(env, err, ado);
|
||
|
|
||
|
switch (typecode)
|
||
|
{
|
||
|
/o scalar types o/
|
||
|
case OCI_TYPECODE_DATE: /o date o/
|
||
|
case OCI_TYPECODE_SIGNED8: /o byte o/
|
||
|
case OCI_TYPECODE_SIGNED16: /o short o/
|
||
|
case OCI_TYPECODE_UNSIGNED8: /o unsigned byte o/
|
||
|
case OCI_TYPECODE_UNSIGNED16: /o unsigned short o/
|
||
|
case OCI_TYPECODE_OCTET: /o octet o/
|
||
|
case OCI_TYPECODE_TABLE: /o nested table o/
|
||
|
case OCI_TYPECODE_CLOB: /o character lob o/
|
||
|
case OCI_TYPECODE_BLOB: /o binary lob o/
|
||
|
case OCI_TYPECODE_CFILE: /o character file object o/
|
||
|
case OCI_TYPECODE_BFILE: /o binary file object o/
|
||
|
|
||
|
/o do something o/
|
||
|
break;
|
||
|
|
||
|
/o number types o/
|
||
|
case OCI_TYPECODE_NUMBER: /o oracle number o/
|
||
|
case OCI_TYPECODE_DECIMAL: /o decimal o/
|
||
|
{
|
||
|
/o get the scale of the number o/
|
||
|
if (OCITypeElemNumScale(env, err, ado) == 3)
|
||
|
/o do something o/ ;
|
||
|
}
|
||
|
/o fall through to get the precision o/
|
||
|
|
||
|
case OCI_TYPECODE_FLOAT: /o float o/
|
||
|
case OCI_TYPECODE_SIGNED32: /o long o/
|
||
|
case OCI_TYPECODE_UNSIGNED32: /o unsigned long o/
|
||
|
case OCI_TYPECODE_REAL: /o real o/
|
||
|
case OCI_TYPECODE_DOUBLE: /o double o/
|
||
|
{
|
||
|
/o get the precision of the number o/
|
||
|
if (OCITypeElemNumPrec(env, err, ado) == 2)
|
||
|
/o do something o/ ;
|
||
|
}
|
||
|
break;
|
||
|
|
||
|
/o string types o/
|
||
|
case OCI_TYPECODE_CHAR: /o fixed length string o/
|
||
|
case OCI_TYPECODE_VARCHAR2: /o variable length string o/
|
||
|
case OCI_TYPECODE_RAW: /o raw o/
|
||
|
{
|
||
|
/o get the length of the fixed or variable length string o/
|
||
|
if (OCITypeElemLength(env, err, ado) < 100)
|
||
|
/o do something o/
|
||
|
}
|
||
|
break;
|
||
|
|
||
|
/o parameterized types o/
|
||
|
case OCI_TYPECODE_REF: /o reference o/
|
||
|
case OCI_TYPECODE_PTR: /o pointer o/
|
||
|
{
|
||
|
/o get the type stored in the parameterized type o/
|
||
|
if (OCITypeElemParameterizedType(env, err, ado, &tdo)
|
||
|
!= OCI_SUCCESS)
|
||
|
/o error o/ ;
|
||
|
|
||
|
/o do something o/
|
||
|
if (OCI_TYPEELEM_IS_REF(OCITypeElemFlags(env, err, ado)))...
|
||
|
}
|
||
|
break;
|
||
|
|
||
|
/o domain type o/
|
||
|
case OCI_TYPECODE_NAMEDCOLLECTION:
|
||
|
switch (OCITypeCollTypeCode(env, err, tdo))
|
||
|
{
|
||
|
case OCI_TYPECODE_VARRAY: /o variable array o/
|
||
|
ub4 num_elems;
|
||
|
OCIType *element_type;
|
||
|
|
||
|
/o get the number of elements in the farray or the maximum number
|
||
|
o of elements in the varray.
|
||
|
o/
|
||
|
OCITypeCollSize(env, err, tdo, &num_elems);
|
||
|
|
||
|
/o get the type of the array o/
|
||
|
OCITypeElemType(env, err, tdo, &element_type);
|
||
|
}
|
||
|
break;
|
||
|
|
||
|
case OCI_TYPECODE_TABLE: /o multiset o/
|
||
|
{
|
||
|
OCIType *table_type;
|
||
|
|
||
|
/o get the type of the multiset o/
|
||
|
OCITypeElemType(env, err, tdo, &table_type);
|
||
|
|
||
|
/o do something o/
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/o abstract type o/
|
||
|
case OCI_TYPECODE_ADT: /o abstract data type o/
|
||
|
{
|
||
|
/o get the adt information o/
|
||
|
if (OCITypeElemType(env, err, ado, &tdo) != OCI_SUCCESS)
|
||
|
/o error o/ ;
|
||
|
|
||
|
/o do something o/
|
||
|
}
|
||
|
break;
|
||
|
|
||
|
default:
|
||
|
DISCARD printf("Error: invalid type code\n");
|
||
|
|
||
|
} /o end of typecode switch o/
|
||
|
|
||
|
} /o end of loop through all attributes in a type o/
|
||
|
|
||
|
|
||
|
/o ------------ GET THE IMMEDIATE METHODS OF A TYPE ------------ o/
|
||
|
|
||
|
/o loop through all methods in the type by reusing iterator o/
|
||
|
if (OCITypeIterSet(env, err, car_tdo, iterator_ort) != OCI_SUCCESS)
|
||
|
/o do something o/
|
||
|
|
||
|
while (OCITypeMethodNext(env, err, iterator_ort) != OCI_NO_DATA)
|
||
|
{
|
||
|
/o get the method's name o/
|
||
|
if (!memcmp(OCITypeMethodName(env, err, mdo, &text_len), "car",
|
||
|
text_len))
|
||
|
/o do something o/ ;
|
||
|
|
||
|
/o get the method's encapsulation o/
|
||
|
if (OCITypeMethodEncap(env, err, mdo) == OCI_TYPEENCAP_PUBLIC)
|
||
|
/o do something o/ ;
|
||
|
|
||
|
/o get the method's flags o/
|
||
|
meth_flags = OCITypeMethodFlags(env, err, mdo);
|
||
|
if (meth_flags & OCI_TYPEMETHOD_VIRTUAL)
|
||
|
/o do something o/ ;
|
||
|
|
||
|
|
||
|
/o ------------ GET THE PARAMETERS IN A METHOD ------------ o/
|
||
|
|
||
|
/o loop through all parameters in the method o/
|
||
|
count = OCITypeMethodParams(env, err, mdo);
|
||
|
for (j = 1; j <= count; j++)
|
||
|
{
|
||
|
/o get the parameter information by position o/
|
||
|
if (OCITypeParamByPos(env, err, mdo, i, &elem) != OCI_SUCCESS)
|
||
|
/o error o/ ;
|
||
|
|
||
|
/o get the parameter's name o/
|
||
|
if (!memcmp(OCITypeElemName(env, err, elem, &text_len), "an_age",
|
||
|
text_len))
|
||
|
/o do something o/ ;
|
||
|
|
||
|
/o get the parameter's mode o/
|
||
|
if (OCITypeElemMode(env, err, elem) == OCI_PARAM_OUT)
|
||
|
/o do something o/ ;
|
||
|
|
||
|
/o get the parameter's required flag o/
|
||
|
if (ortgprq(env, err, elem))
|
||
|
/o do something o/ ;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/o get a method by name o/
|
||
|
if (OCITypeMethodByName(env, err, car_tdo, "car_constructor",
|
||
|
strlen("car_constructor"), NULLP(OCIRef), &mdo)
|
||
|
!= OCI_SUCCESS)
|
||
|
/o error o/ ;
|
||
|
|
||
|
/o get a parameter in a method by name o/
|
||
|
if (OCITypeParamByName(env, err, mdo, "an_age", strlen("an_age"), &elem)
|
||
|
!= OCI_SUCCESS)
|
||
|
/o error o/ ;
|
||
|
|
||
|
/o get a parameter's typecode o/
|
||
|
typecode = OCITypeElemTypeCode(env, err, elem);
|
||
|
|
||
|
/o get a parameter's type object o/
|
||
|
if (OCITypeElemType(env, err, elem, &tdo)) != OCI_SUCCESS)
|
||
|
/o error o/ ;
|
||
|
|
||
|
/o get a parameter's position in a method o/
|
||
|
if (ortgpps(env, err, mdo, "an_age", strlen("an_age"),
|
||
|
&position, NULLP(OCIRef), NULLP(OCITypeElem)) != OCI_SUCCESS)
|
||
|
/o error o/ ;
|
||
|
|
||
|
/o ------------ GET THE METHOD's RESULT ------------ o/
|
||
|
|
||
|
/o get a method by name o/
|
||
|
if (OCITypeMethodByName(env, err, car_tdo, "get_age", strlen("get_age"),
|
||
|
&mdo) != OCI_SUCCESS)
|
||
|
/o error o/ ;
|
||
|
|
||
|
/o get the typecode of the method's result o/
|
||
|
typecode = OCITypeElemTypeCode(env, err, mdo);
|
||
|
|
||
|
|
||
|
/o ----------------- END ---------------- o/
|
||
|
|
||
|
/o free the references implicitly allocated o/
|
||
|
DISCARD orlrfre(env, err, (dvoid *)&attr_ref);
|
||
|
DISCARD orlrfre(env, err, (dvoid *)¶m_ref);
|
||
|
|
||
|
NOTES
|
||
|
|
||
|
MODIFIED
|
||
|
dmukhin 06/29/05 - ANSI prototypes; miscellaneous cleanup
|
||
|
srseshad 03/12/03 - convert oci public api to ansi
|
||
|
aahluwal 06/03/02 - bug 2360115
|
||
|
skabraha 04/16/02 - fix compiler warnings
|
||
|
rkasamse 03/02/01 - do not use iterator : keyword in MSVB
|
||
|
bpalaval 02/09/01 - Change text to oratext.
|
||
|
rxgovind 01/31/00 - add OCIType interfaces for transient types
|
||
|
whe 09/01/99 - 976457:check __cplusplus for C++ code
|
||
|
cxcheng 05/06/97 - make OCI_TYPE?? test macros return either 1 or 0
|
||
|
cxcheng 04/22/97 - add comment on desupporting OCIType functions
|
||
|
skrishna 03/18/97 - fix ifdef for supporting ansi and k&r proto-types
|
||
|
cxcheng 02/26/97 - fix lint problem with oro names
|
||
|
cxcheng 02/06/97 - take out short name support except with SLSHORTNAME
|
||
|
cxcheng 01/15/97 - change prototype of OCITypeElemParameterizedType()
|
||
|
cxcheng 01/03/97 - replace bit in OCI_TYPEPARAM_IS_REQUIRED with bitwis
|
||
|
cxcheng 12/31/96 - replace OCI_PARAM_IS_REQUIRED with OCI_TYPEPARAM_IS_
|
||
|
cxcheng 12/09/96 - add prototype for OCITypeElemExtTypeCode and OCIType
|
||
|
cxcheng 11/25/96 - add schema name parameter to OCITypeVTInsert()
|
||
|
cxcheng 11/20/96 - fix prototype for OCITypeByName()
|
||
|
cxcheng 11/11/96 - fix prototype for OCITypeByName()
|
||
|
cxcheng 11/05/96 - remove OCITypeElemExtTypeCode and OCITypeCollExtType
|
||
|
dchatter 10/28/96 - change ortgatyp to be OCITypeArrayByName
|
||
|
cxcheng 10/25/96 - fix problem with ortgatyp at end
|
||
|
cxcheng 10/22/96 - add OCITypeByRef and OCITypeArrayByRef
|
||
|
cxcheng 10/20/96 - remove ortgtyp() from #define section at end
|
||
|
cxcheng 10/18/96 - rename OCITypeGetArray to OCITypeArrayByName
|
||
|
cxcheng 10/17/96 - final change to prototype for OCI_TYPEPARAM_IS_REQUI
|
||
|
cxcheng 10/15/96 - rename OCIEncapLevel and OCIMethodFlag
|
||
|
cxcheng 10/14/96 - change prototype of OCITypeResult
|
||
|
mluong 10/11/96 - fix compile error
|
||
|
jwijaya 10/10/96 - fix bug on OCI_PARAM_IS_REQUIRED
|
||
|
cxcheng 10/09/96 - more lint and link fixes
|
||
|
cxcheng 10/08/96 - more lint fixes
|
||
|
cxcheng 10/07/96 - more changes
|
||
|
cxcheng 10/04/96 - replace short names with long names
|
||
|
cxcheng 10/01/96 - change to long names for readability
|
||
|
cxcheng 09/27/96 - rename ortgatyp() to ortgtya() for lint
|
||
|
cxcheng 09/20/96 - add ortgatyp() for array get type
|
||
|
cxcheng 09/18/96 - add array pin and iterator functions
|
||
|
cxcheng 08/09/96 - add version table calls
|
||
|
cxcheng 07/22/96 - add OCITypeElemType() to top
|
||
|
jwijaya 07/03/96 - add ANSI prototypes
|
||
|
cxcheng 06/28/96 - add OCITypeElemCharSetForm()
|
||
|
cxcheng 06/26/96 - fix comment on OCITypeParamByPos()/ortgpps()
|
||
|
cxcheng 06/18/96 - fix comments on OCITypeResult()
|
||
|
cxcheng 06/17/96 - improve comments
|
||
|
skrishna 06/03/96 - change OCITypeCollElem() prototype
|
||
|
vkrishna 05/29/96 - replace OROTCFAR with OROTCCAR
|
||
|
cxcheng 05/28/96 - fix comments, remove non-beta1 functions
|
||
|
cxcheng 05/02/96 - fix prototype bugs
|
||
|
cxcheng 04/29/96 - rename OCITypeElemm() to ortanct()
|
||
|
cxcheng 04/26/96 - add ortgrbp and ortftyi,
|
||
|
fix comments and examples
|
||
|
cxcheng 04/22/96 - big merge to main branch
|
||
|
cxcheng 04/17/96 - fix syntax
|
||
|
cxcheng 04/08/96 - change prototype to ortaty()
|
||
|
skrishna 04/08/96 - change ort*() to take OCIEnv* and OCIError* instead
|
||
|
of oroenv*
|
||
|
cxcheng 03/28/96 - add ortslob(), change ortsstr() prototype
|
||
|
cxcheng 03/13/96 - change alter type interface
|
||
|
cxcheng 03/11/96 - ORT interface changes
|
||
|
cxcheng 02/27/96 - correct comments
|
||
|
jboonleu 02/09/96 - rename oroopd to OCIDuration
|
||
|
cxcheng 01/19/96 - change ORTCTYVAL to ORTCTYEMB for embedded ADT
|
||
|
cxcheng 02/14/96 - add more comments
|
||
|
jboonleu 02/09/96 - rename oroopd to OCIDuration
|
||
|
cxcheng 02/07/96 - fix comments and examples
|
||
|
cxcheng 01/19/96 - new ORT interface without korfc's
|
||
|
cxcheng 01/08/96 - consolidate collection functions
|
||
|
cxcheng 12/14/95 - remove obsolete ortgcol() and ortrelease()
|
||
|
jweisz 12/12/95 - merge screwup: ortdth twice
|
||
|
cxcheng 12/05/95 - change multiset interface for new standard
|
||
|
skotsovo 12/01/95 - merge from /vobs/rdbms/public/ort.h@@/main/
|
||
|
st_rdbms_big_dev/st_rdbms_obj/
|
||
|
st_rdbms_jwijaya_variable_ref
|
||
|
cxcheng 11/13/95 - add ortaty()/orteaty()
|
||
|
cxcheng 11/13/95 - add new collection type accessors
|
||
|
skotsovo 10/30/95 - add 'oid' type b/c extent type uses it.
|
||
|
skotsovo 10/24/95 - update according to new variable length ref
|
||
|
cxcheng 10/05/95 - add null support, change prototypes to calls
|
||
|
cxcheng 10/03/95 - add OCITypeMethodOrder() to get ORDER method
|
||
|
cxcheng 09/28/95 - add OCITypeElemm() for collection types support
|
||
|
skotsovo 06/05/95 - add adt_type parameter to ortsab()
|
||
|
skotsovo 05/10/95 - ifdef'd out ortgafp()
|
||
|
skotsovo 03/07/95 - update interface to only include release 1
|
||
|
skotsovo 02/22/95 - add multiset accessors
|
||
|
skotsovo 02/09/95 - update according to new ots doc
|
||
|
skotsovo 01/31/95 - add rest of release 1 types
|
||
|
skotsovo 01/24/95 - categorize sint32, double, and real as number types
|
||
|
(with precision and scale) instead of scalar types.
|
||
|
skotsovo 01/12/95 - remove dependency from ortdty interface
|
||
|
skotsovo 01/03/95 - remove orotyp accessors
|
||
|
skotsovo 12/12/94 - update comments
|
||
|
skotsovo 12/05/94 - change OCITypeElemParameterizedTyper interface
|
||
|
skotsovo 10/26/94 - add type version table
|
||
|
skotsovo 10/17/94 - fix ortgafp() comments
|
||
|
skotsovo 10/14/94 - modify ortgafp() parameters
|
||
|
skotsovo 10/14/94 - add examples
|
||
|
skotsovo 10/13/94 - add a few new routines
|
||
|
jwijaya 10/07/94 - add namespace to pin by name
|
||
|
jwijaya 10/02/94 - connection handle -> connection number
|
||
|
skotsovo 09/13/94 - modify example to use updated oririni interface
|
||
|
skotsovo 08/25/94 - change scale to sb1 from sb2
|
||
|
skotsovo 07/28/94 - add ortbeg() and ortend()
|
||
|
skotsovo 07/14/94 - add decimal type & call graph
|
||
|
skotsovo 06/28/94 - subset by removing miscellaneous functions
|
||
|
skotsovo 06/28/94 - consistently put comments before typedefs
|
||
|
skotsovo 06/27/94 - modify according to new header file template, add
|
||
|
more examples, and change ortcty() to return a
|
||
|
reference to the type
|
||
|
skotsovo 06/24/94 - add functions to get type information from orotyp
|
||
|
skotsovo 06/20/94 - finish modifying according to header template
|
||
|
skotsovo 06/09/94 - modify according to header file template
|
||
|
skotsovo 06/08/94 - replace s.h with oratypes.h
|
||
|
skotsovo 05/24/94 - modify comments & update example
|
||
|
skotsovo 05/23/94 - modify fnt names for create, alter and drop type
|
||
|
skotsovo 05/18/94 - remove ortdme() -- delete a method
|
||
|
skotsovo 05/17/94 - add tdo parameter to all type modifiers
|
||
|
skotsovo 05/11/94 - return text* instead of including it in arglist
|
||
|
skotsovo 11/16/93 - creation
|
||
|
|
||
|
*/
|
||
|
|
||
|
#ifndef ORATYPES
|
||
|
#include <oratypes.h>
|
||
|
#endif
|
||
|
#ifndef ORO_ORACLE
|
||
|
#include <oro.h>
|
||
|
#endif
|
||
|
#ifndef OCI_ORACLE
|
||
|
#include <oci.h>
|
||
|
#endif
|
||
|
|
||
|
#ifndef ORT_ORACLE
|
||
|
#define ORT_ORACLE
|
||
|
|
||
|
/*---------------------------------------------------------------------------*/
|
||
|
/* SHORT NAMES SUPPORT SECTION */
|
||
|
/*---------------------------------------------------------------------------*/
|
||
|
|
||
|
#ifdef SLSHORTNAME
|
||
|
|
||
|
/* the following are short names that are only supported on IBM mainframes
|
||
|
with the SLSHORTNAME defined.
|
||
|
With this all subsequent long names will actually be substituted with
|
||
|
the short names here */
|
||
|
|
||
|
#define OCITypeArrayByName ortgatyp
|
||
|
#define OCITypeAttrByName ortgabn
|
||
|
#define OCITypeAttrNext ortgabi
|
||
|
#define OCITypeAttrs ortgtna
|
||
|
#define OCITypeByRef ortgtbrf
|
||
|
#define OCITypeCollElem ortgcel
|
||
|
#define OCITypeCollExtTypeCode ortgcsqt
|
||
|
#define OCITypeCollSize ortgcne
|
||
|
#define OCITypeCollTypeCode ortgdttc
|
||
|
#define OCITypeElem ortado
|
||
|
#define OCITypeElemCharSetForm ortgscform
|
||
|
#define OCITypeElemCharSetID ortgscid
|
||
|
#define OCITypeElemDefaultValue ortgpdv
|
||
|
#define OCITypeElemExtTypeCode ortgasqt
|
||
|
#define OCITypeElemLength ortgsl
|
||
|
#define OCITypeElemName ortganm
|
||
|
#define OCITypeElemNumPrec ortgnp
|
||
|
#define OCITypeElemNumScale ortgns
|
||
|
#define OCITypeElemParamMode ortgpmo
|
||
|
#define OCITypeElemParameterizedType ortgpa
|
||
|
#define OCITypeElemType ortgaty
|
||
|
#define OCITypeElemTypeCode ortgatc
|
||
|
#define OCITypeIter ortitr
|
||
|
#define OCITypeIterFree ortifre
|
||
|
#define OCITypeIterNew ortinew
|
||
|
#define OCITypeIterSet ortiset
|
||
|
#define OCITypeMethod ortmdo
|
||
|
#define OCITypeMethodByName ortgmbn
|
||
|
#define OCITypeMethodEncap ortgmen
|
||
|
#define OCITypeMethodFlags ortgmfl
|
||
|
#define OCITypeMethodMap ortgmmap
|
||
|
#define OCITypeMethodName ortgmnm
|
||
|
#define OCITypeMethodNext ortgmbi
|
||
|
#define OCITypeMethodOrder ortgmor
|
||
|
#define OCITypeMethodOverload ortgmno
|
||
|
#define OCITypeMethodParams ortgmnp
|
||
|
#define OCITypeMethods ortgtnm
|
||
|
#define OCITypeName ortgtme
|
||
|
#define OCITypeParamByName ortgpbn
|
||
|
#define OCITypeParamPos ortgpps
|
||
|
#define OCITypeSchema ortgtsch
|
||
|
#define OCITypeTypeCode ortgttc
|
||
|
#define OCITypeVTInit ortvini
|
||
|
#define OCITypeVTInsert ortvins
|
||
|
#define OCITypeVTSelect ortvsel
|
||
|
#define OCITypeVersion ortgtvn
|
||
|
|
||
|
#endif /* SLSHORTNAME */
|
||
|
|
||
|
|
||
|
/*============================*/
|
||
|
/* PUBLIC TYPES AND CONSTANTS */
|
||
|
/*============================*/
|
||
|
|
||
|
/*----------------------------- TYPE DESCRIPTION ----------------------------*/
|
||
|
|
||
|
/*
|
||
|
* OCIType - OCI Type Description Object
|
||
|
*
|
||
|
* The contents of an 'OCIType' is private/opaque to clients. Clients just
|
||
|
* need to declare and pass 'OCIType' pointers in to the type manage
|
||
|
* functions.
|
||
|
* The pointer points to the type in the object cache. Thus, clients don't
|
||
|
* need to allocate space for this type and must NEVER free the pointer to the
|
||
|
* 'OCIType'.
|
||
|
*/
|
||
|
|
||
|
typedef struct OCIType OCIType;
|
||
|
|
||
|
/*------------------------- TYPE ELEMENT DESCRIPTION ------------------------*/
|
||
|
|
||
|
|
||
|
/*
|
||
|
* OCITypeElem - OCI Type Element object
|
||
|
*
|
||
|
* The contents of an 'OCITypeElem' is private/opaque to clients. Clients just
|
||
|
* need to declare and pass 'OCITypeElem' pointers in to the type manager
|
||
|
* functions.
|
||
|
*
|
||
|
* 'OCITypeElem' objects contains type element information such as the numeric
|
||
|
* precision for example, for number objects, and the number of elements for
|
||
|
* arrays.
|
||
|
* They ARE used to describe type attributes, collection elements,
|
||
|
* method parameters, and method results. Hence they are pass in or returned
|
||
|
* by attribute, collection, and method parameter/result accessors.
|
||
|
*/
|
||
|
|
||
|
typedef struct OCITypeElem OCITypeElem;
|
||
|
|
||
|
|
||
|
/*--------------------------- METHOD DESCRIPTION ---------------------------*/
|
||
|
|
||
|
|
||
|
/*
|
||
|
* OCITypeMethod - OCI Method Description object
|
||
|
*
|
||
|
* The contents of an 'OCITypeMethod' is private/opaque to clients. Clients
|
||
|
* just need to declare and pass 'OCITypeMethod' pointers in to the type
|
||
|
* manager functions.
|
||
|
* The pointer points to the method in the object cache. Thus, clients don't
|
||
|
* need to allocate space for this type and must NEVER free the pointer to
|
||
|
* the 'OCITypeMethod'.
|
||
|
*/
|
||
|
|
||
|
typedef struct OCITypeMethod OCITypeMethod;
|
||
|
|
||
|
|
||
|
/*--------------------------- TYPE ACCESS ITERATOR --------------------------*/
|
||
|
|
||
|
/*
|
||
|
* OCITypeIter- OCI Type Iterator
|
||
|
*
|
||
|
* The contents of an 'orti' is private/opaque to clients. Clients just
|
||
|
* need to declare and pass 'orti' pointers in to the type manager functions.
|
||
|
* The iterator is used to retreive MDO's and ADO's that belong to the TDO
|
||
|
* one at a time. It needs to be allocated by the 'OCITypeIterNew()' function
|
||
|
* call and deallocated with the 'OCITypeIterFree()' function call.
|
||
|
*/
|
||
|
|
||
|
typedef struct OCITypeIter OCITypeIter;
|
||
|
|
||
|
|
||
|
/*==================*/
|
||
|
/* PUBLIC FUNCTIONS */
|
||
|
/*==================*/
|
||
|
|
||
|
/*--------------------------------------------------------------------------*/
|
||
|
/* ITERATOR */
|
||
|
/*--------------------------------------------------------------------------*/
|
||
|
|
||
|
/*-----------------------_- OCITypeIterNew ---------------------------------*/
|
||
|
|
||
|
/* ** OBSOLETE ** */
|
||
|
sword OCITypeIterNew( OCIEnv *env, OCIError *err, OCIType *tdo,
|
||
|
OCITypeIter **iterator_ort );
|
||
|
|
||
|
/*
|
||
|
NAME: OCITypeIterNew - OCI Iterator NEW
|
||
|
PARAMETERS:
|
||
|
env (IN/OUT) - OCI environment handle initialized in object mode
|
||
|
err (IN/OUT) - error handle. If there is an error, it is
|
||
|
recorded in 'err' and this function returns OCI_ERROR.
|
||
|
The error recorded in 'err' can be retrieved by calling
|
||
|
OCIErrorGet().
|
||
|
tdo (IN) - pointer to the pinned type in the object cache to
|
||
|
initialize the iterator with
|
||
|
iterator_ort (OUT) - pointer to the pointer to the new iterator created
|
||
|
DESCRIPTION:
|
||
|
Create a new instance of a method/attribute iterator and initalize
|
||
|
it's values.
|
||
|
RETURNS:
|
||
|
OCI_SUCCESS if the function completes successfully.
|
||
|
OCI_INVALID_HANDLE if 'env' or 'err' is null.
|
||
|
OCI_ERROR if
|
||
|
1) any of the required parameters is null.
|
||
|
2) error while allocating space for the iterator.
|
||
|
*/
|
||
|
|
||
|
/*------------------------ OCITypeIterSet ---------------------------------*/
|
||
|
|
||
|
/* ** OBSOLETE ** */
|
||
|
sword OCITypeIterSet( OCIEnv *env, OCIError *err, OCIType *tdo,
|
||
|
OCITypeIter *iterator_ort );
|
||
|
|
||
|
/*
|
||
|
NAME: OCITypeIterSet - OCI Iterator SET
|
||
|
PARAMETERS:
|
||
|
env (IN/OUT) - OCI environment handle initialized in object mode
|
||
|
err (IN/OUT) - error handle. If there is an error, it is
|
||
|
recorded in 'err' and this function returns OCI_ERROR.
|
||
|
The error recorded in 'err' can be retrieved by calling
|
||
|
OCIErrorGet().
|
||
|
tdo (IN) - pointer to the pinned type in the object cache to
|
||
|
initialize the iterator with
|
||
|
iterator_ort (IN/OUT) - pointer to the iterator to set
|
||
|
DESCRIPTION:
|
||
|
Initializes the iterator. This is used to reset the state of the
|
||
|
iterator.
|
||
|
RETURNS:
|
||
|
OCI_SUCCESS if the function completes successfully.
|
||
|
OCI_INVALID_HANDLE if 'env' or 'err' is null.
|
||
|
OCI_ERROR if
|
||
|
1) any of the required parameters is null.
|
||
|
*/
|
||
|
|
||
|
/*------------------------ OCITypeIterFree ---------------------------------*/
|
||
|
|
||
|
/* ** OBSOLETE ** */
|
||
|
sword OCITypeIterFree( OCIEnv *env, OCIError *err, OCITypeIter
|
||
|
*iterator_ort );
|
||
|
|
||
|
/*
|
||
|
NAME: OCITypeIterFree - OCI Iterator FREe
|
||
|
PARAMETERS:
|
||
|
env (IN/OUT) - OCI environment handle initialized in object mode
|
||
|
err (IN/OUT) - error handle. If there is an error, it is
|
||
|
recorded in 'err' and this function returns OCI_ERROR.
|
||
|
The error recorded in 'err' can be retrieved by calling
|
||
|
OCIErrorGet().
|
||
|
iterator_ort (IN/OUT) - pointer to the iterator to free
|
||
|
DESCRIPTION:
|
||
|
Free space allocated for the iterator.
|
||
|
RETURNS:
|
||
|
OCI_SUCCESS if the function completes successfully.
|
||
|
OCI_INVALID_HANDLE if 'env' or 'err' is null.
|
||
|
OCI_ERROR if
|
||
|
1) any of the required parameters is null.
|
||
|
2) error while freeing the iterator, probably bad iterator pointer.
|
||
|
*/
|
||
|
|
||
|
|
||
|
/*--------------------------------------------------------------------------*/
|
||
|
/* TYPE GET */
|
||
|
/*--------------------------------------------------------------------------*/
|
||
|
|
||
|
/* ** OBSOLETE ** */
|
||
|
sword OCITypeByName( OCIEnv *env, OCIError *err, const OCISvcCtx *svc,
|
||
|
const oratext *schema_name, ub4 s_length,
|
||
|
const oratext *type_name, ub4 t_length,
|
||
|
const oratext *version_name, ub4 v_length,
|
||
|
OCIDuration pin_duration, OCITypeGetOpt get_option,
|
||
|
OCIType **tdo );
|
||
|
/*
|
||
|
NAME: OCITypeByName - OCI Get the most current version of an existing TYPe
|
||
|
by name.
|
||
|
PARAMETERS:
|
||
|
env (IN/OUT) - OCI environment handle initialized in object mode
|
||
|
err (IN/OUT) - error handle. If there is an error, it is
|
||
|
recorded in 'err' and this function returns OCI_ERROR.
|
||
|
The error recorded in 'err' can be retrieved by calling
|
||
|
OCIErrorGet().
|
||
|
svc (IN) - OCI service handle
|
||
|
schema_name (IN, optional) - name of schema associated with the
|
||
|
type. By default, the user's schema name is used.
|
||
|
s_length (IN) - length of the 'schema_name' parameter
|
||
|
type_name (IN) - name of the type to get
|
||
|
t_length (IN) - length of the 'type_name' parameter
|
||
|
version_name (IN, optional) - user readable version of the type.
|
||
|
Pass (oratext *)0 for the most current version.
|
||
|
v_length (IN) - length of version_name in bytes. Should be 0 if
|
||
|
the most current version is to be retrieved.
|
||
|
pin_duration (IN) - pin duration (e.g. until the end of current
|
||
|
transaction). See 'oro.h' for a description of
|
||
|
each option.
|
||
|
get_option (IN) - options for loading the types. It can be one of two
|
||
|
values:
|
||
|
OCI_TYPEGET_HEADER for only the header to be loaded, or
|
||
|
OCI_TYPEGET_ALL for the TDO and all ADO and MDOs to be
|
||
|
loaded.
|
||
|
tdo (OUT) - pointer to the pinned type in the object cache
|
||
|
DESCRIPTION:
|
||
|
Get a pointer to a version of the existing type associated
|
||
|
with schema/type name.
|
||
|
RETURNS:
|
||
|
OCI_SUCCESS if the function completes successfully.
|
||
|
OCI_INVALID_HANDLE if 'env' or 'err' is null.
|
||
|
OCI_ERROR if
|
||
|
1) any of the required parameters is null.
|
||
|
2) the adt type associated with schema/type name does not exist.
|
||
|
NOTE:
|
||
|
Schema and type names are CASE-SENSITIVE. If they have been created
|
||
|
via SQL, you need to use uppercase names.
|
||
|
*/
|
||
|
|
||
|
sword OCITypeArrayByName( OCIEnv *env, OCIError *err, const OCISvcCtx *svc,
|
||
|
ub4 array_len,
|
||
|
const oratext *schema_name[], ub4 s_length[],
|
||
|
const oratext *type_name[], ub4 t_length[],
|
||
|
const oratext *version_name[], ub4 v_length[],
|
||
|
OCIDuration pin_duration,
|
||
|
OCITypeGetOpt get_option, OCIType **tdo );
|
||
|
|
||
|
/*
|
||
|
NAME: OCITypeArrayByName - OCI Get array of TYPes by name.
|
||
|
PARAMETERS:
|
||
|
env (IN/OUT) - OCI environment handle initialized in object mode
|
||
|
err (IN/OUT) - error handle. If there is an error, it is
|
||
|
recorded in 'err' and this function returns OCI_ERROR.
|
||
|
The error recorded in 'err' can be retrieved by calling
|
||
|
OCIErrorGet().
|
||
|
svc (IN) - OCI service handle
|
||
|
array_len (IN) - number of schema_name/type_name/version_name entries to
|
||
|
be retrieved.
|
||
|
schema_name (IN, optional) - array of schema names associated with the
|
||
|
types to be retrieved. The array must have array_len
|
||
|
elements if specified.
|
||
|
If 0 is supplied, the default schema is assumed, otherwise
|
||
|
it MUST have array_len number of elements.
|
||
|
0 can be supplied for one or more of the entries to indicate
|
||
|
that the default schema is desired for those entries.
|
||
|
s_length (IN) - array of schema_name lengths with each entry
|
||
|
corresponding to the length of the corresponding schema_name
|
||
|
entry in the schema_name array in bytes.
|
||
|
The array must either have array_len number of elements or
|
||
|
it MUST be 0 if schema_name is not specified.
|
||
|
type_name (IN) - array of the names of the types to retrieve. This
|
||
|
MUST have array_len number of elements.
|
||
|
t_length (IN) - array of the lengths of type names in the type_name
|
||
|
array in bytes.
|
||
|
version_name (IN) - array of the version names of the types to retrieve
|
||
|
corresponding. This can be 0 to indicate retrieval of the
|
||
|
most current versions, or it MUST have array_len number of
|
||
|
elements.
|
||
|
If 0 is supplied, the most current version is assumed,
|
||
|
otherwise it MUST have array_len number of elements.
|
||
|
0 can be supplied for one or more of the entries to indicate
|
||
|
that the current version is desired for those entries.
|
||
|
v_length (IN) - array of the lengths of version names in the
|
||
|
version_name array in bytes.
|
||
|
pin_duration (IN) - pin duration (e.g. until the end of current
|
||
|
transaction) for the types retreieve. See 'oro.h' for a
|
||
|
description of each option.
|
||
|
get_option (IN) - options for loading the types. It can be one of two
|
||
|
values:
|
||
|
OCI_TYPEGET_HEADER for only the header to be loaded, or
|
||
|
OCI_TYPEGET_ALL for the TDO and all ADO and MDOs to be
|
||
|
loaded.
|
||
|
tdo (OUT) - output array for the pointers to each pinned type in the
|
||
|
object cache. It must have space for array_len pointers.
|
||
|
Use OCIObjectGetObjectRef() to obtain the CREF to each
|
||
|
pinned type descriptor.
|
||
|
DESCRIPTION:
|
||
|
Get pointers to the existing types associated with the schema/type name
|
||
|
array. This is similar to OCITypeByName() except that all the TDO's are
|
||
|
retreived via a single network roundtrip.
|
||
|
RETURNS:
|
||
|
OCI_SUCCESS if the function completes successfully.
|
||
|
OCI_INVALID_HANDLE if 'env' or 'err' is null.
|
||
|
OCI_ERROR if
|
||
|
1) any of the required parameters is null.
|
||
|
2) one or more adt types associated with a schema/type name entry
|
||
|
does not exist.
|
||
|
*/
|
||
|
|
||
|
sword OCITypeByRef( OCIEnv *env, OCIError *err,
|
||
|
const OCIRef *type_ref, OCIDuration pin_duration,
|
||
|
OCITypeGetOpt get_option, OCIType **tdo );
|
||
|
|
||
|
/*
|
||
|
NAME: OCITypeArrayByRef - OCI Get array of TYPes by REF.
|
||
|
PARAMETERS:
|
||
|
env (IN/OUT) - OCI environment handle initialized in object mode
|
||
|
err (IN/OUT) - error handle. If there is an error, it is
|
||
|
recorded in 'err' and this function returns OCI_ERROR.
|
||
|
The error recorded in 'err' can be retrieved by calling
|
||
|
OCIErrorGet().
|
||
|
type_ref (IN) - OCIRef * pointing to the particular version of
|
||
|
the type descriptor object to obtain.
|
||
|
The array must have array_len elements if specified.
|
||
|
pin_duration (IN) - pin duration (e.g. until the end of current
|
||
|
transaction) for the type to retreieve. See 'oro.h' for a
|
||
|
description of each option.
|
||
|
get_option (IN) - options for loading the type. It can be one of two
|
||
|
values:
|
||
|
OCI_TYPEGET_HEADER for only the header to be loaded, or
|
||
|
OCI_TYPEGET_ALL for the TDO and all ADO and MDOs to be
|
||
|
loaded.
|
||
|
tdo (OUT) - pointer to the pinned type in the object cache
|
||
|
DESCRIPTION:
|
||
|
Get pointers to the
|
||
|
with the schema/type name array. This is similar to OCITypeByName()
|
||
|
except that all the TDO's are retreived via a single network roundtrip.
|
||
|
RETURNS:
|
||
|
OCI_SUCCESS if the function completes successfully.
|
||
|
OCI_INVALID_HANDLE if 'env' or 'err' is null.
|
||
|
OCI_ERROR if
|
||
|
1) any of the required parameters is null.
|
||
|
2) one or more adt types associated with a schema/type name entry
|
||
|
does not exist.
|
||
|
*/
|
||
|
|
||
|
sword OCITypeArrayByRef( OCIEnv *env, OCIError *err,
|
||
|
ub4 array_len, const OCIRef **type_ref,
|
||
|
OCIDuration pin_duration,
|
||
|
OCITypeGetOpt get_option, OCIType **tdo );
|
||
|
|
||
|
/*
|
||
|
NAME: OCITypeArrayByRef - OCI Get array of TYPes by REF.
|
||
|
PARAMETERS:
|
||
|
env (IN/OUT) - OCI environment handle initialized in object mode
|
||
|
err (IN/OUT) - error handle. If there is an error, it is
|
||
|
recorded in 'err' and this function returns OCI_ERROR.
|
||
|
The error recorded in 'err' can be retrieved by calling
|
||
|
OCIErrorGet().
|
||
|
array_len (IN) - number of schema_name/type_name/version_name entries to
|
||
|
be retrieved.
|
||
|
type_ref (IN) - array of OCIRef * pointing to the particular version of
|
||
|
the type descriptor object to obtain.
|
||
|
The array must have array_len elements if specified.
|
||
|
pin_duration (IN) - pin duration (e.g. until the end of current
|
||
|
transaction) for the types retreieve. See 'oro.h' for a
|
||
|
description of each option.
|
||
|
get_option (IN) - options for loading the types. It can be one of two
|
||
|
values:
|
||
|
OCI_TYPEGET_HEADER for only the header to be loaded, or
|
||
|
OCI_TYPEGET_ALL for the TDO and all ADO and MDOs to be
|
||
|
loaded.
|
||
|
tdo (OUT) - output array for the pointers to each pinned type in the
|
||
|
object cache. It must have space for array_len pointers.
|
||
|
Use OCIObjectGetObjectRef() to obtain the CREF to each
|
||
|
pinned type descriptor.
|
||
|
DESCRIPTION:
|
||
|
Get pointers to the
|
||
|
with the schema/type name array. This is similar to OCITypeByName()
|
||
|
except that all the TDO's are retreived via a single network roundtrip.
|
||
|
RETURNS:
|
||
|
OCI_SUCCESS if the function completes successfully.
|
||
|
OCI_INVALID_HANDLE if 'env' or 'err' is null.
|
||
|
OCI_ERROR if
|
||
|
1) any of the required parameters is null.
|
||
|
2) one or more adt types associated with a schema/type name entry
|
||
|
does not exist.
|
||
|
*/
|
||
|
|
||
|
|
||
|
/*--------------------------------------------------------------------------*/
|
||
|
/* TYPE ACCESSORS */
|
||
|
/*--------------------------------------------------------------------------*/
|
||
|
|
||
|
/*---------------------------- OCITypeName ---------------------------------*/
|
||
|
|
||
|
/* ** OBSOLETE ** */
|
||
|
oratext* OCITypeName( OCIEnv *env, OCIError *err, const OCIType *tdo,
|
||
|
ub4 *n_length );
|
||
|
/*
|
||
|
NAME: OCITypeName - ORT Get a Type's naME.
|
||
|
PARAMETERS:
|
||
|
env (IN/OUT) - OCI environment handle initialized in object mode
|
||
|
err (IN/OUT) - error handle. If there is an error, it is
|
||
|
recorded in 'err' and this function returns OCI_ERROR.
|
||
|
The error recorded in 'err' can be retrieved by calling
|
||
|
OCIErrorGet().
|
||
|
tdo (IN) - pointer to to the type descriptor in the object cache
|
||
|
n_length (OUT) - length (in bytes) of the returned type name. The
|
||
|
caller must allocate space for the ub4 before calling this
|
||
|
routine.
|
||
|
REQUIRES:
|
||
|
1) All type accessors require that the type be pinned before calling
|
||
|
any accessor.
|
||
|
2) All input parameters must not be NULL and must be valid.
|
||
|
3) 'n_length' must point to an allocated ub4.
|
||
|
DESCRIPTION:
|
||
|
Get the name of the type.
|
||
|
RETURNS:
|
||
|
the name of the type
|
||
|
NOTES:
|
||
|
The type descriptor, 'tdo', must be unpinned when the accessed
|
||
|
information is no longer needed.
|
||
|
*/
|
||
|
|
||
|
/*------------------------ OCITypeSchema ---------------------------------*/
|
||
|
|
||
|
/* ** OBSOLETE ** */
|
||
|
oratext* OCITypeSchema( OCIEnv *env, OCIError *err, const OCIType *tdo,
|
||
|
ub4 *n_length );
|
||
|
/*
|
||
|
NAME: OCITypeSchema - ORT Get a Type's SCHema name.
|
||
|
PARAMETERS:
|
||
|
env (IN/OUT) - OCI environment handle initialized in object mode
|
||
|
err (IN/OUT) - error handle. If there is an error, it is
|
||
|
recorded in 'err' and this function returns OCI_ERROR.
|
||
|
The error recorded in 'err' can be retrieved by calling
|
||
|
OCIErrorGet().
|
||
|
tdo (IN) - pointer to to the type descriptor in the object cache
|
||
|
n_length (OUT) - length (in bytes) of the returned schema name. The
|
||
|
caller must allocate space for the ub4 before calling this
|
||
|
routine.
|
||
|
REQUIRES:
|
||
|
1) All type accessors require that the type be pinned before calling
|
||
|
any accessor.
|
||
|
2) All input parameters must not be NULL and must be valid.
|
||
|
3) 'n_length' must point to an allocated ub4.
|
||
|
DESCRIPTION:
|
||
|
Get the schema name of the type.
|
||
|
RETURNS:
|
||
|
the schema name of the type
|
||
|
NOTES:
|
||
|
The type descriptor, 'tdo', must be unpinned when the accessed
|
||
|
information is no longer needed.
|
||
|
*/
|
||
|
|
||
|
/*------------------------ OCITypeTypeCode ---------------------------------*/
|
||
|
|
||
|
/* ** OBSOLETE ** */
|
||
|
OCITypeCode OCITypeTypeCode( OCIEnv *env, OCIError *err,
|
||
|
const OCIType *tdo );
|
||
|
/*
|
||
|
NAME: OCITypeTypeCode - OCI Get a Type's Type Code.
|
||
|
PARAMETERS:
|
||
|
env (IN/OUT) - OCI environment handle initialized in object mode
|
||
|
err (IN/OUT) - error handle. If there is an error, it is
|
||
|
recorded in 'err' and this function returns OCI_ERROR.
|
||
|
The error recorded in 'err' can be retrieved by calling
|
||
|
OCIErrorGet().
|
||
|
tdo (IN) - pointer to to the type descriptor in the object cache
|
||
|
REQUIRES:
|
||
|
1) All type accessors require that the type be pinned before calling
|
||
|
any accessor.
|
||
|
2) All input parameters must not be NULL and must be valid.
|
||
|
DESCRIPTION:
|
||
|
Get the type code of the type.
|
||
|
RETURNS:
|
||
|
The type code of the type.
|
||
|
NOTES:
|
||
|
The type descriptor, 'tdo', must be unpinned when the accessed
|
||
|
information is no longer needed.
|
||
|
*/
|
||
|
|
||
|
/*----------------------- OCITypeCollTypeCode -------------------------------*/
|
||
|
|
||
|
/* ** OBSOLETE ** */
|
||
|
OCITypeCode OCITypeCollTypeCode( OCIEnv *env, OCIError *err,
|
||
|
const OCIType *tdo );
|
||
|
/*
|
||
|
NAME: OCITypeCollTypeCode - OCI Get a Domain Type's Type Code.
|
||
|
PARAMETERS:
|
||
|
env (IN/OUT) - OCI environment handle initialized in object mode
|
||
|
err (IN/OUT) - error handle. If there is an error, it is
|
||
|
recorded in 'err' and this function returns OCI_ERROR.
|
||
|
The error recorded in 'err' can be retrieved by calling
|
||
|
OCIErrorGet().
|
||
|
tdo (IN) - pointer to to the type descriptor in the object cache
|
||
|
REQUIRES:
|
||
|
1) All type accessors require that the type be pinned before calling
|
||
|
any accessor.
|
||
|
2) All input parameters must not be NULL and must be valid.
|
||
|
3) 'tdo' MUST point to a named collection type.
|
||
|
DESCRIPTION:
|
||
|
Get the type code of the named collection type. For V8.0, named
|
||
|
collection types can only be variable length arrays and nested tables.
|
||
|
RETURNS:
|
||
|
OCI_TYPECODE_VARRAY for variable length array, and
|
||
|
OCI_TYPECODE_TABLE for nested tables.
|
||
|
NOTES:
|
||
|
The type descriptor, 'tdo', should be unpinned when the accessed
|
||
|
information is no longer needed.
|
||
|
*/
|
||
|
|
||
|
/*------------------------- OCITypeVersion ---------------------------------*/
|
||
|
|
||
|
/* ** OBSOLETE ** */
|
||
|
oratext* OCITypeVersion( OCIEnv *env, OCIError *err, const OCIType *tdo,
|
||
|
ub4 *v_length );
|
||
|
/*
|
||
|
NAME: OCITypeVersion - OCI Get a Type's user-readable VersioN.
|
||
|
PARAMETERS:
|
||
|
env (IN/OUT) - OCI environment handle initialized in object mode
|
||
|
err (IN/OUT) - error handle. If there is an error, it is
|
||
|
recorded in 'err' and this function returns OCI_ERROR.
|
||
|
The error recorded in 'err' can be retrieved by calling
|
||
|
OCIErrorGet().
|
||
|
tdo (IN) - pointer to to the type descriptor in the object cache
|
||
|
v_length (OUT) - length (in bytes) of the returned user-readable
|
||
|
version. The caller must allocate space for the ub4 before
|
||
|
calling this routine.
|
||
|
REQUIRES:
|
||
|
1) All type accessors require that the type be pinned before calling
|
||
|
any accessor.
|
||
|
2) All input parameters must not be NULL and must be valid.
|
||
|
3) 'v_length' must point to an allocated ub4.
|
||
|
DESCRIPTION:
|
||
|
Get the user-readable version of the type.
|
||
|
RETURNS:
|
||
|
The user-readable version of the type
|
||
|
NOTES:
|
||
|
The type descriptor, 'tdo', must be unpinned when the accessed
|
||
|
information is no longer needed.
|
||
|
*/
|
||
|
|
||
|
/*--------------------------- OCITypeAttrs ---------------------------------*/
|
||
|
|
||
|
/* ** OBSOLETE ** */
|
||
|
ub4 OCITypeAttrs( OCIEnv *env, OCIError *err, const OCIType *tdo );
|
||
|
/*
|
||
|
NAME: OCITypeAttrs - OCI Get a Type's Number of Attributes.
|
||
|
PARAMETERS:
|
||
|
env (IN/OUT) - OCI environment handle initialized in object mode
|
||
|
err (IN/OUT) - error handle. If there is an error, it is
|
||
|
recorded in 'err' and this function returns OCI_ERROR.
|
||
|
The error recorded in 'err' can be retrieved by calling
|
||
|
OCIErrorGet().
|
||
|
tdo (IN) - pointer to to the type descriptor in the object cache
|
||
|
REQUIRES:
|
||
|
1) All type accessors require that the type be pinned before calling
|
||
|
any accessor.
|
||
|
2) All input parameters must not be NULL and must be valid.
|
||
|
DESCRIPTION:
|
||
|
Get the number of attributes in the type.
|
||
|
RETURNS:
|
||
|
The number of attributes in the type. 0 for ALL non-ADTs.
|
||
|
NOTES:
|
||
|
The type descriptor, 'tdo', must be unpinned when the accessed
|
||
|
information is no longer needed.
|
||
|
*/
|
||
|
|
||
|
/*------------------------- OCITypeMethods ---------------------------------*/
|
||
|
|
||
|
/* ** OBSOLETE ** */
|
||
|
ub4 OCITypeMethods( OCIEnv *env, OCIError *err, const OCIType *tdo );
|
||
|
/*
|
||
|
NAME: OCITypeMethods - OCI Get a Type's Number of Methods.
|
||
|
PARAMETERS:
|
||
|
env (IN/OUT) - OCI environment handle initialized in object mode
|
||
|
err (IN/OUT) - error handle. If there is an error, it is
|
||
|
recorded in 'err' and this function returns OCI_ERROR.
|
||
|
The error recorded in 'err' can be retrieved by calling
|
||
|
OCIErrorGet().
|
||
|
tdo (IN) - pointer to to the type descriptor in the object cache
|
||
|
REQUIRES:
|
||
|
1) All type accessors require that the type be pinned before calling
|
||
|
any accessor.
|
||
|
2) All input parameters must not be NULL and must be valid.
|
||
|
DESCRIPTION:
|
||
|
Get the number of methods in a type.
|
||
|
RETURNS:
|
||
|
The number of methods in the type
|
||
|
NOTES:
|
||
|
The type descriptor, 'tdo', must be unpinned when the accessed
|
||
|
information is no longer needed.
|
||
|
*/
|
||
|
|
||
|
|
||
|
/*--------------------------------------------------------------------------*/
|
||
|
/* TYPE ELEMENT INFORMATION ACCESSORS */
|
||
|
/*--------------------------------------------------------------------------*/
|
||
|
|
||
|
/*------------------------ OCITypeElemName ---------------------------------*/
|
||
|
|
||
|
/* ** OBSOLETE ** */
|
||
|
oratext* OCITypeElemName( OCIEnv *env, OCIError *err,
|
||
|
const OCITypeElem *elem, ub4 *n_length );
|
||
|
/*
|
||
|
NAME: OCITypeElemName - OCI Get an Attribute's NaMe.
|
||
|
PARAMETERS:
|
||
|
env (IN/OUT) - OCI environment handle initialized in object mode
|
||
|
err (IN/OUT) - error handle. If there is an error, it is
|
||
|
recorded in 'err' and this function returns OCI_ERROR.
|
||
|
The error recorded in 'err' can be retrieved by calling
|
||
|
OCIErrorGet().
|
||
|
elem (IN) - pointer to the type element descriptor in the object cache
|
||
|
n_length (OUT) - length (in bytes) of the returned attribute name.
|
||
|
The caller must allocate space for the ub4 before calling this
|
||
|
routine.
|
||
|
REQUIRES:
|
||
|
1) All type accessors require that the type be pinned before calling
|
||
|
any accessor.
|
||
|
2) All input parameters must not be NULL and must be valid.
|
||
|
3) 'n_length' must point to an allocated ub4.
|
||
|
DESCRIPTION:
|
||
|
Get the name of the attribute.
|
||
|
RETURNS:
|
||
|
the name of the attribute and the length in n_length
|
||
|
NOTES:
|
||
|
The type must be unpinned when the accessed information is no
|
||
|
longer needed.
|
||
|
*/
|
||
|
|
||
|
/*------------------------ OCITypeElemTypeCode ------------------------------*/
|
||
|
|
||
|
/* ** OBSOLETE ** */
|
||
|
OCITypeCode OCITypeElemTypeCode( OCIEnv *env, OCIError *err,
|
||
|
const OCITypeElem *elem );
|
||
|
/*
|
||
|
NAME: OCITypeElemTypeCode - OCI Get an Attribute's TypeCode.
|
||
|
PARAMETERS:
|
||
|
env (IN/OUT) - OCI environment handle initialized in object mode
|
||
|
err (IN/OUT) - error handle. If there is an error, it is
|
||
|
recorded in 'err' and this function returns OCI_ERROR.
|
||
|
The error recorded in 'err' can be retrieved by calling
|
||
|
OCIErrorGet().
|
||
|
elem (IN) - pointer to the type element descriptor in the object cache
|
||
|
REQUIRES:
|
||
|
1) All type accessors require that the type be pinned before calling
|
||
|
any accessor.
|
||
|
2) All input parameters must not be NULL and must be valid.
|
||
|
DESCRIPTION:
|
||
|
Get the typecode of an attribute's type.
|
||
|
RETURNS:
|
||
|
the typecode of the attribute's type. If this is a scalar type, the
|
||
|
typecode sufficiently describes the scalar type and no further calls
|
||
|
need to be made. Valid scalar types include: OCI_TYPECODE_SIGNED8,
|
||
|
OCI_TYPECODE_UNSIGNED8, OCI_TYPECODE_SIGNED16, OCI_TYPECODE_UNSIGNED16,
|
||
|
OCI_TYPECODE_SIGNED32, OCI_TYPECODE_UNSIGNED32, OCI_TYPECODE_REAL,
|
||
|
OCI_TYPECODE_DOUBLE, OCI_TYPECODE_DATE,
|
||
|
OCI_TYPECODE_MLSLABEL, OROTCOID, OCI_TYPECODE_OCTET, or OROTCLOB.
|
||
|
This function converts the CREF (stored in the attribute) into a
|
||
|
typecode.
|
||
|
NOTES:
|
||
|
The type must be unpinned when the accessed information is no
|
||
|
longer needed.
|
||
|
*/
|
||
|
|
||
|
/*------------------------ OCITypeElemType ---------------------------------*/
|
||
|
|
||
|
/* ** OBSOLETE ** */
|
||
|
sword OCITypeElemType( OCIEnv *env, OCIError *err, const OCITypeElem *elem,
|
||
|
OCIType **elem_tdo );
|
||
|
/*
|
||
|
PARAMETERS
|
||
|
env (IN/OUT) - OCI environment handle initialized in object mode
|
||
|
err (IN/OUT) - error handle. If there is an error, it is
|
||
|
recorded in 'err' and this function returns OCI_ERROR.
|
||
|
The error recorded in 'err' can be retrieved by calling
|
||
|
OCIErrorGet().
|
||
|
elem (IN) - pointer to the type element descriptor in the object cache
|
||
|
elem_tdo (OUT) - If the function completes successfully, 'elem_tdo'
|
||
|
points to the type descriptor (in the object cache) of the type of
|
||
|
the element.
|
||
|
|
||
|
REQUIRES
|
||
|
1) All type accessors require that the type be pinned before calling
|
||
|
any accessor. This can be done by calling 'OCITypeByName()'.
|
||
|
2) if 'elem' is not null, it must point to a valid type element descriptor
|
||
|
in the object cache.
|
||
|
|
||
|
DESCRIPTION
|
||
|
Get the type tdo of the type of this element.
|
||
|
RETURNS
|
||
|
OCI_SUCCESS if the function completes successfully.
|
||
|
OCI_INVALID_HANDLE if 'env' or 'err' is null.
|
||
|
OCI_ERROR if
|
||
|
1) any of the parameters is null.
|
||
|
|
||
|
NOTES
|
||
|
The type must be unpinned when the accessed information is no
|
||
|
longer needed. This can be done by calling 'OCIObjectUnpin()'.
|
||
|
*/
|
||
|
|
||
|
/*------------------------- OCITypeElemFlags -------------------------------*/
|
||
|
|
||
|
/* ** OBSOLETE ** */
|
||
|
ub4 OCITypeElemFlags( OCIEnv *env, OCIError *err,
|
||
|
const OCITypeElem *elem );
|
||
|
/*
|
||
|
NAME: OCITypeElemFlags - OCI Get a Elem's FLags
|
||
|
(inline, constant, virtual, constructor,
|
||
|
destructor).
|
||
|
PARAMETERS:
|
||
|
env (IN/OUT) - OCI environment handle initialized in object mode
|
||
|
err (IN/OUT) - error handle. If there is an error, it is
|
||
|
recorded in 'err' and this function returns OCI_ERROR.
|
||
|
The error recorded in 'err' can be retrieved by calling
|
||
|
OCIErrorGet().
|
||
|
elem (IN) - pointer to the type element descriptor in the object cache
|
||
|
REQUIRES:
|
||
|
1) All type accessors require that the type be pinned before calling
|
||
|
any accessor.
|
||
|
2) All input parameters must not be NULL and must be valid.
|
||
|
DESCRIPTION:
|
||
|
Get the flags of a type element (attribute, parameter).
|
||
|
RETURNS:
|
||
|
The flags of the type element.
|
||
|
NOTES:
|
||
|
The flag bits are not externally documented. Use only the macros
|
||
|
in the last section (ie. OCI_TYPEPARAM_IS_REQUIRED, and
|
||
|
OCI_TYPEELEM_IS_REF) to test for them only. The type must be unpinned
|
||
|
when the accessed information is no longer needed.
|
||
|
*/
|
||
|
|
||
|
/*------------------------ OCITypeElemNumPrec ------------------------------*/
|
||
|
|
||
|
/* ** OBSOLETE ** */
|
||
|
ub1 OCITypeElemNumPrec( OCIEnv *env, OCIError *err,
|
||
|
const OCITypeElem *elem );
|
||
|
/*
|
||
|
NAME: OCITypeElemNumPrec - Get a Number's Precision. This includes float,
|
||
|
decimal, real, double, and oracle number.
|
||
|
PARAMETERS:
|
||
|
env (IN/OUT) - OCI environment handle initialized in object mode
|
||
|
err (IN/OUT) - error handle. If there is an error, it is
|
||
|
recorded in 'err' and this function returns OCI_ERROR.
|
||
|
The error recorded in 'err' can be retrieved by calling
|
||
|
OCIErrorGet().
|
||
|
elem (IN) - pointer to the type element descriptor in the object cache
|
||
|
REQUIRES:
|
||
|
All input parameters must not be NULL and must be valid.
|
||
|
DESCRIPTION:
|
||
|
Get the precision of a float, decimal, long, unsigned long, real,
|
||
|
double, or Oracle number type.
|
||
|
RETURNS:
|
||
|
the precision of the float, decimal, long, unsigned long, real, double,
|
||
|
or Oracle number
|
||
|
*/
|
||
|
|
||
|
/*------------------------- OCITypeElemNumScale -----------------------------*/
|
||
|
|
||
|
/* ** OBSOLETE ** */
|
||
|
sb1 OCITypeElemNumScale( OCIEnv *env, OCIError *err,
|
||
|
const OCITypeElem *elem );
|
||
|
/*
|
||
|
NAME: OCITypeElemNumScale - Get a decimal or oracle Number's Scale
|
||
|
PARAMETERS:
|
||
|
env (IN/OUT) - OCI environment handle initialized in object mode
|
||
|
err (IN/OUT) - error handle. If there is an error, it is
|
||
|
recorded in 'err' and this function returns OCI_ERROR.
|
||
|
The error recorded in 'err' can be retrieved by calling
|
||
|
OCIErrorGet().
|
||
|
elem (IN) - pointer to the type element descriptor in the object cache
|
||
|
REQUIRES:
|
||
|
All input parameters must not be NULL and must be valid.
|
||
|
DESCRIPTION:
|
||
|
Get the scale of a decimal, or Oracle number type.
|
||
|
RETURNS:
|
||
|
the scale of the decimal, or Oracle number
|
||
|
*/
|
||
|
|
||
|
/*------------------------ OCITypeElemLength -------------------------------*/
|
||
|
|
||
|
/* ** OBSOLETE ** */
|
||
|
ub4 OCITypeElemLength( OCIEnv *env, OCIError *err,
|
||
|
const OCITypeElem *elem );
|
||
|
/*
|
||
|
NAME: OCITypeElemLength - Get a raw, fixed or variable length String's
|
||
|
length in bytes.
|
||
|
PARAMETERS:
|
||
|
env (IN/OUT) - OCI environment handle initialized in object mode
|
||
|
err (IN/OUT) - error handle. If there is an error, it is
|
||
|
recorded in 'err' and this function returns OCI_ERROR.
|
||
|
The error recorded in 'err' can be retrieved by calling
|
||
|
OCIErrorGet().
|
||
|
elem (IN) - pointer to the type element descriptor in the object cache
|
||
|
REQUIRES:
|
||
|
All input parameters must not be NULL and must be valid.
|
||
|
DESCRIPTION:
|
||
|
Get the length of a raw, fixed or variable length string type.
|
||
|
RETURNS:
|
||
|
length of the raw, fixed or variable length string
|
||
|
*/
|
||
|
|
||
|
/*----------------------- OCITypeElemCharSetID -----------------------------*/
|
||
|
|
||
|
/* ** OBSOLETE ** */
|
||
|
ub2 OCITypeElemCharSetID( OCIEnv *env, OCIError *err,
|
||
|
const OCITypeElem *elem );
|
||
|
/*
|
||
|
NAME: OCITypeElemCharSetID - Get a fixed or variable length String's
|
||
|
character set ID
|
||
|
PARAMETERS:
|
||
|
env (IN/OUT) - OCI environment handle initialized in object mode
|
||
|
err (IN/OUT) - error handle. If there is an error, it is
|
||
|
recorded in 'err' and this function returns OCI_ERROR.
|
||
|
The error recorded in 'err' can be retrieved by calling
|
||
|
OCIErrorGet().
|
||
|
elem (IN) - pointer to the type element descriptor in the object cache
|
||
|
REQUIRES:
|
||
|
All input parameters must not be NULL and must be valid.
|
||
|
DESCRIPTION:
|
||
|
Get the character set ID of a fixed or variable length string type.
|
||
|
RETURNS:
|
||
|
character set ID of the fixed or variable length string
|
||
|
*/
|
||
|
|
||
|
/*---------------------- OCITypeElemCharSetForm ----------------------------*/
|
||
|
|
||
|
/* ** OBSOLETE ** */
|
||
|
ub2 OCITypeElemCharSetForm( OCIEnv *env, OCIError *err,
|
||
|
const OCITypeElem *elem );
|
||
|
/*
|
||
|
NAME: OCITypeElemCharSetForm - Get a fixed or variable length String's
|
||
|
character set specification form.
|
||
|
PARAMETERS:
|
||
|
env (IN/OUT) - OCI environment handle initialized in object mode
|
||
|
err (IN/OUT) - error handle. If there is an error, it is
|
||
|
recorded in 'err' and this function returns OCI_ERROR.
|
||
|
The error recorded in 'err' can be retrieved by calling
|
||
|
OCIErrorGet().
|
||
|
elem (IN) - pointer to the attribute information in the object cache
|
||
|
REQUIRES:
|
||
|
All input parameters must not be NULL and must be valid.
|
||
|
DESCRIPTION:
|
||
|
Get the character form of a fixed or variable length string type.
|
||
|
The character form is an enumerated value that can be one of the
|
||
|
4 values below:
|
||
|
SQLCS_IMPLICIT for CHAR, VARCHAR2, CLOB w/o a specified set
|
||
|
SQLCS_NCHAR for NCHAR, NCHAR VARYING, NCLOB
|
||
|
SQLCS_EXPLICIT for CHAR, etc, with "CHARACTER SET ..." syntax
|
||
|
SQLCS_FLEXIBLE for PL/SQL "flexible" parameters
|
||
|
RETURNS:
|
||
|
character form of the fixed or variable string
|
||
|
*/
|
||
|
|
||
|
/*--------------------- OCITypeElemParameterizedType ------------------------*/
|
||
|
|
||
|
/* ** OBSOLETE ** */
|
||
|
sword OCITypeElemParameterizedType( OCIEnv *env, OCIError *err,
|
||
|
const OCITypeElem *elem,
|
||
|
OCIType **type_stored );
|
||
|
/*
|
||
|
NAME: OCITypeElemParameterizedType
|
||
|
PARAMETERS:
|
||
|
env (IN/OUT) - OCI environment handle initialized in object mode
|
||
|
err (IN/OUT) - error handle. If there is an error, it is
|
||
|
recorded in 'err' and this function returns OCI_ERROR.
|
||
|
The error recorded in 'err' can be retrieved by calling
|
||
|
OCIErrorGet().
|
||
|
elem (IN) - pointer to the type element descriptor in the object cache
|
||
|
type_stored (OUT) - If the function completes successfully,
|
||
|
and the parameterized type is complex, 'type_stored' is NULL.
|
||
|
Otherwise, 'type_stored' points to the type descriptor (in the
|
||
|
object cache) of the type that is stored in the parameterized
|
||
|
type. The caller must allocate space for the OCIType*
|
||
|
before calling this routine and must not write into the space.
|
||
|
REQUIRES:
|
||
|
All input parameters must be valid.
|
||
|
DESCRIPTION:
|
||
|
Get a descriptor to the parameter type of a parameterized type.
|
||
|
Parameterized types are types of the form:
|
||
|
REF T
|
||
|
VARRAY (n) OF T
|
||
|
etc, where T is the parameter in the parameterized type.
|
||
|
Additionally is_ref is set if the parameter is a PTR or REF.
|
||
|
For example, it is set for REF T or VARRAY(n) OF REF T.
|
||
|
RETURNS:
|
||
|
OCI_SUCCESS if the function completes successfully.
|
||
|
OCI_INVALID_HANDLE if 'env' or 'err' is null.
|
||
|
OCI_ERROR if
|
||
|
1) any of the parameters is null.
|
||
|
2) 'type_stored' is not NULL but points to NULL data.
|
||
|
NOTES:
|
||
|
Complex parameterized types will be in a future release (once
|
||
|
typedefs are supported. When setting the parameterized type
|
||
|
information, the user must typedef the contents if it's a
|
||
|
complex parameterized type. Ex. for varray<varray<car>>, use
|
||
|
'typedef varray<car> varcar' and then use varray<varcar>.
|
||
|
*/
|
||
|
|
||
|
/*----------------------- OCITypeElemExtTypeCode ----------------------------*/
|
||
|
|
||
|
/* ** OBSOLETE ** */
|
||
|
OCITypeCode OCITypeElemExtTypeCode( OCIEnv *env, OCIError *err,
|
||
|
const OCITypeElem *elem );
|
||
|
/*
|
||
|
NAME: OCITypeElemExtTypeCode - OCI Get an element's SQLT constant.
|
||
|
PARAMETERS:
|
||
|
env (IN/OUT) - OCI environment handle initialized in object mode
|
||
|
err (IN/OUT) - error handle. If there is an error, it is
|
||
|
recorded in 'err' and this function returns OCI_ERROR.
|
||
|
The error recorded in 'err' can be retrieved by calling
|
||
|
OCIErrorGet().
|
||
|
elem (IN) - pointer to the type element descriptor in the object cache
|
||
|
REQUIRES:
|
||
|
1) All type accessors require that the type be pinned before calling
|
||
|
any accessor.
|
||
|
2) All input parameters must not be NULL and must be valid.
|
||
|
DESCRIPTION:
|
||
|
Get the internal Oracle typecode associated with an attribute's type.
|
||
|
This is the actual typecode for the attribute when it gets mapped
|
||
|
to a column in the Oracle database.
|
||
|
RETURNS:
|
||
|
The Oracle typecode associated with the attribute's type.
|
||
|
NOTES:
|
||
|
The type must be unpinned when the accessed information is no
|
||
|
longer needed.
|
||
|
*/
|
||
|
|
||
|
/*--------------------------------------------------------------------------*/
|
||
|
/* ATTRIBUTE ACCESSORS */
|
||
|
/*--------------------------------------------------------------------------*/
|
||
|
|
||
|
/*------------------------ OCITypeAttrByName -------------------------------*/
|
||
|
|
||
|
/* ** OBSOLETE ** */
|
||
|
sword OCITypeAttrByName( OCIEnv *env, OCIError *err, const OCIType *tdo,
|
||
|
const oratext *name, ub4 n_length,
|
||
|
OCITypeElem **elem );
|
||
|
/*
|
||
|
NAME: OCITypeAttrByName - OCI Get an Attribute By Name.
|
||
|
PARAMETERS:
|
||
|
env (IN/OUT) - OCI environment handle initialized in object mode
|
||
|
err (IN/OUT) - error handle. If there is an error, it is
|
||
|
recorded in 'err' and this function returns OCI_ERROR.
|
||
|
The error recorded in 'err' can be retrieved by calling
|
||
|
OCIErrorGet().
|
||
|
tdo (IN) - pointer to to the type descriptor in the object cache
|
||
|
name (IN) - the attribute's name
|
||
|
n_length (IN) - length (in bytes) of the 'name' parameter
|
||
|
elem (OUT) - If this function completes successfully, 'elem' points to
|
||
|
the selected type element descriptor pertaining to the
|
||
|
attributein the object cache.
|
||
|
REQUIRES:
|
||
|
1) All type accessors require that the type be pinned before calling
|
||
|
any accessor.
|
||
|
2) if 'tdo' is not null, it must point to a valid type descriptor
|
||
|
in the object cache.
|
||
|
DESCRIPTION:
|
||
|
Get an attribute given its name.
|
||
|
RETURNS:
|
||
|
OCI_SUCCESS if the function completes successfully.
|
||
|
OCI_INVALID_HANDLE if 'env' or 'err' is null.
|
||
|
OCI_ERROR if
|
||
|
1) any of the required parameters is null.
|
||
|
2) the type does not contain an attribute with the input 'name'.
|
||
|
3) 'name' is NULL.
|
||
|
NOTES:
|
||
|
The type descriptor, 'tdo', must be unpinned when the accessed
|
||
|
information is no longer needed.
|
||
|
Schema and type names are CASE-SENSITIVE. If they have been created
|
||
|
via SQL, you need to use uppercase names.
|
||
|
*/
|
||
|
|
||
|
/*------------------------ OCITypeAttrNext ---------------------------------*/
|
||
|
|
||
|
/* ** OBSOLETE ** */
|
||
|
sword OCITypeAttrNext( OCIEnv *env, OCIError *err,
|
||
|
OCITypeIter *iterator_ort, OCITypeElem **elem );
|
||
|
|
||
|
/*
|
||
|
NAME: OCITypeAttrNext - OCI Get an Attribute By Iteration.
|
||
|
PARAMETERS:
|
||
|
env (IN/OUT) - OCI environment handle initialized in object mode
|
||
|
err (IN/OUT) - error handle. If there is an error, it is
|
||
|
recorded in 'err' and this function returns OCI_ERROR.
|
||
|
The error recorded in 'err' can be retrieved by calling
|
||
|
OCIErrorGet().
|
||
|
iterator_ort (IN/OUT) - iterator for retrieving the next attribute;
|
||
|
see OCITypeIterNew() to initialize iterator.
|
||
|
elem (OUT) - If this function completes successfully, 'elem' points to
|
||
|
the selected type element descriptor pertaining to the
|
||
|
attributein the object cache.
|
||
|
REQUIRES:
|
||
|
1) All type accessors require that the type be pinned before calling
|
||
|
any accessor.
|
||
|
2) if 'tdo' is not null, it must point to a valid type descriptor
|
||
|
in the object cache.
|
||
|
DESCRIPTION:
|
||
|
Iterate to the next attribute to retrieve.
|
||
|
RETURNS:
|
||
|
OCI_SUCCESS if the function completes successfully.
|
||
|
OCI_NO_DATA if there are no more attributes to iterate on; use
|
||
|
OCITypeIterSet() to reset the iterator if necessary.
|
||
|
OCI_INVALID_HANDLE if 'env' or 'err' is null.
|
||
|
OCI_ERROR if
|
||
|
1) any of the required parameters is null.
|
||
|
NOTES:
|
||
|
The type must be unpinned when the accessed information is no
|
||
|
longer needed.
|
||
|
*/
|
||
|
|
||
|
/*--------------------------------------------------------------------------*/
|
||
|
/* COLLECTION ACCESSORS */
|
||
|
/*--------------------------------------------------------------------------*/
|
||
|
|
||
|
/*------------------------ OCITypeCollElem ---------------------------------*/
|
||
|
|
||
|
/* ** OBSOLETE ** */
|
||
|
sword OCITypeCollElem( OCIEnv *env, OCIError *err, const OCIType *tdo,
|
||
|
OCITypeElem **element );
|
||
|
/*
|
||
|
NAME: OCITypeCollElem
|
||
|
PARAMETERS:
|
||
|
env (IN/OUT) - OCI environment handle initialized in object mode
|
||
|
err (IN/OUT) - error handle. If there is an error, it is
|
||
|
recorded in 'err' and this function returns OCI_ERROR.
|
||
|
The error recorded in 'err' can be retrieved by calling
|
||
|
OCIErrorGet().
|
||
|
tdo (IN) - pointer to the type descriptor in the object cache
|
||
|
element (IN/OUT) - If the function completes successfully, this
|
||
|
points to the descriptor for the collection's element.
|
||
|
It is stored in the same format as an ADT attribute's
|
||
|
descriptor.
|
||
|
If *element is NULL, OCITypeCollElem() implicitly allocates a
|
||
|
new instance of OCITypeElem in the object cache. This instance
|
||
|
will be
|
||
|
automatically freed at the end of the session, and does not have
|
||
|
to be freed explicitly.
|
||
|
If *element is not NULL, OCITypeCollElem() assumes that it
|
||
|
points to a valid OCITypeElem descriptor and will copy the
|
||
|
results into it.
|
||
|
REQUIRES:
|
||
|
All input parameters must be valid.
|
||
|
DESCRIPTION:
|
||
|
Get a pointer to the descriptor (OCITypeElem) of the element of an
|
||
|
array or the rowtype of a nested table.
|
||
|
RETURNS:
|
||
|
OCI_SUCCESS if the function completes successfully.
|
||
|
OCI_INVALID_HANDLE if 'env' or 'err' is null.
|
||
|
OCI_ERROR if
|
||
|
1) any of the parameters is null.
|
||
|
2) the type TDO does not point to a valid collection's type.
|
||
|
NOTES:
|
||
|
Complex parameterized types will be in a future release (once
|
||
|
typedefs are supported. When setting the parameterized type
|
||
|
information, the user must typedef the contents if it's a
|
||
|
complex parameterized type. Ex. for varray<varray<car>>, use
|
||
|
'typedef varray<car> varcar' and then use varray<varcar>.
|
||
|
*/
|
||
|
|
||
|
/*------------------------ OCITypeCollSize ---------------------------------*/
|
||
|
|
||
|
/* ** OBSOLETE ** */
|
||
|
sword OCITypeCollSize( OCIEnv *env, OCIError *err, const OCIType *tdo,
|
||
|
ub4 *num_elems );
|
||
|
/*
|
||
|
NAME: OCITypeCollSize - OCI Get a Collection's Number of Elements.
|
||
|
PARAMETERS:
|
||
|
env (IN/OUT) - OCI environment handle initialized in object mode
|
||
|
err (IN/OUT) - error handle. If there is an error, it is
|
||
|
recorded in 'err' and this function returns OCI_ERROR.
|
||
|
The error recorded in 'err' can be retrieved by calling
|
||
|
OCIErrorGet().
|
||
|
tdo (IN) - pointer to the type descriptor in the object cache
|
||
|
num_elems (OUT) - number of elements in collection
|
||
|
REQUIRES:
|
||
|
All input parameters must be valid. tdo points to an array type
|
||
|
defined as a domain.
|
||
|
DESCRIPTION:
|
||
|
Get the number of elements stored in a fixed array or the maximum
|
||
|
number of elements in a variable array.
|
||
|
RETURNS:
|
||
|
OCI_SUCCESS if the function completes successfully.
|
||
|
OCI_INVALID_HANDLE if 'env' or 'err' is null.
|
||
|
OCI_ERROR if
|
||
|
1) any of the parameters is null.
|
||
|
2) 'tdo' does not point to a domain with a collection type.
|
||
|
NOTES:
|
||
|
Complex parameterized types will be in a future release (once
|
||
|
typedefs are supported. When setting the parameterized type
|
||
|
information, the user must typedef the contents if it's a
|
||
|
complex parameterized type. Ex. for varray<varray<car>>, use
|
||
|
'typedef varray<car> varcar' and then use varray<varcar>.
|
||
|
*/
|
||
|
|
||
|
/*------------------------ OCITypeCollExtTypeCode ---------------------------*/
|
||
|
|
||
|
/* ** OBSOLETE ** */
|
||
|
sword OCITypeCollExtTypeCode( OCIEnv *env, OCIError *err,
|
||
|
const OCIType *tdo, OCITypeCode *sqt_code );
|
||
|
/*
|
||
|
NAME: ortcsqt - OCI Get a Collection element's DTY constant.
|
||
|
PARAMETERS:
|
||
|
env (IN/OUT) - OCI environment handle initialized in object mode
|
||
|
err (IN/OUT) - error handle. If there is an error, it is
|
||
|
recorded in 'err' and this function returns OCI_ERROR.
|
||
|
The error recorded in 'err' can be retrieved by calling
|
||
|
OCIErrorGet().
|
||
|
tdo (IN) - pointer to the type descriptor in the object cache
|
||
|
sqt_code (OUT) - SQLT code of type element.
|
||
|
REQUIRES:
|
||
|
1) All type accessors require that the type be pinned before calling
|
||
|
any accessor.
|
||
|
2) All input parameters must not be NULL and must be valid.
|
||
|
DESCRIPTION:
|
||
|
Get the SQLT constant associated with an domain's element type.
|
||
|
The SQLT codes are defined in <sqldef.h> and are needed for OCI/OOCI
|
||
|
use.
|
||
|
RETURNS:
|
||
|
OCI_SUCCESS if the function completes successfully.
|
||
|
OCI_INVALID_HANDLE if 'env' or 'err' is null.
|
||
|
OCI_ERROR if
|
||
|
1) any of the parameters is null.
|
||
|
2) 'tdo' does not point to a domain with a collection type.
|
||
|
NOTES:
|
||
|
The type must be unpinned when the accessed information is no
|
||
|
longer needed.
|
||
|
*/
|
||
|
|
||
|
|
||
|
/*--------------------------------------------------------------------------*/
|
||
|
/* METHOD ACCESSORS */
|
||
|
/*--------------------------------------------------------------------------*/
|
||
|
|
||
|
/*------------------------- OCITypeMethodOverload --------------------------*/
|
||
|
|
||
|
/* ** OBSOLETE ** */
|
||
|
ub4 OCITypeMethodOverload( OCIEnv *env, OCIError *err, const OCIType *tdo,
|
||
|
const oratext *method_name, ub4 m_length );
|
||
|
/*
|
||
|
NAME: OCITypeMethodOverload - OCI Get type's Number of Overloaded names
|
||
|
for the given method name.
|
||
|
PARAMETERS:
|
||
|
gp (IN/OUT) - pga environment handle. Any errors are recorded here.
|
||
|
tdo (IN) - pointer to to the type descriptor in the object cache
|
||
|
method_name (IN) - the method's name
|
||
|
m_length (IN) - length (in bytes) of the 'method_name' parameter
|
||
|
REQUIRES:
|
||
|
1) All type accessors require that the type be pinned before calling
|
||
|
any accessor.
|
||
|
2) if 'tdo' is not null, it must point to a valid type descriptor
|
||
|
in the object cache.
|
||
|
DESCRIPTION:
|
||
|
Overloading of methods implies that more than one method may have the
|
||
|
same method name. This routine returns the number of methods that
|
||
|
have the given method name. If there are no methods with the input
|
||
|
method name, 'num_methods' is 0. The caller uses this information when
|
||
|
allocating space for the array of mdo and/or position pointers before
|
||
|
calling 'OCITypeMethodByName()' or 'ortgmps()'.
|
||
|
RETURNS:
|
||
|
The number of methods with the given name. 0 if none contains the
|
||
|
name.
|
||
|
NOTES:
|
||
|
Schema and type names are CASE-SENSITIVE. If they have been created
|
||
|
via SQL, you need to use uppercase names.
|
||
|
*/
|
||
|
|
||
|
/*------------------------ OCITypeMethodByName ------------------------------*/
|
||
|
|
||
|
/* ** OBSOLETE ** */
|
||
|
sword OCITypeMethodByName( OCIEnv *env, OCIError *err, const OCIType *tdo,
|
||
|
const oratext *method_name, ub4 m_length,
|
||
|
OCITypeMethod **mdos );
|
||
|
/*
|
||
|
NAME: OCITypeMethodByName - OCI Get one or more Methods with Name.
|
||
|
PARAMETERS:
|
||
|
env (IN/OUT) - OCI environment handle initialized in object mode
|
||
|
err (IN/OUT) - error handle. If there is an error, it is
|
||
|
recorded in 'err' and this function returns OCI_ERROR.
|
||
|
The error recorded in 'err' can be retrieved by calling
|
||
|
OCIErrorGet().
|
||
|
tdo (IN) - pointer to to the type descriptor in the object cache
|
||
|
method_name (IN) - the methods' name
|
||
|
m_length (IN) - length (in bytes) of the 'name' parameter
|
||
|
mdos (OUT) - If this function completes successfully, 'mdos' points to
|
||
|
the selected methods in the object cache. The caller must
|
||
|
allocate space for the array of OCITypeMethod pointers before
|
||
|
calling this routine and must not write into the space.
|
||
|
The number of OCITypeMethod pointers that will be returned can
|
||
|
be obtained by calling 'OCITypeMethodOverload()'.
|
||
|
REQUIRES:
|
||
|
1) All type accessors require that the type be pinned before calling
|
||
|
any accessor.
|
||
|
2) if 'tdo' is not null, it must point to a valid type descriptor
|
||
|
in the object cache.
|
||
|
DESCRIPTION:
|
||
|
Get one or more methods given the name.
|
||
|
RETURNS:
|
||
|
OCI_SUCCESS if the function completes successfully.
|
||
|
OCI_INVALID_HANDLE if 'env' or 'err' is null.
|
||
|
OCI_ERROR if
|
||
|
1) any of the required parameters is null.
|
||
|
2) No methods in type has name 'name'.
|
||
|
3) 'mdos' is not NULL but points to NULL data.
|
||
|
NOTES:
|
||
|
The type must be unpinned when the accessed information is no
|
||
|
longer needed.
|
||
|
Schema and type names are CASE-SENSITIVE. If they have been created
|
||
|
via SQL, you need to use uppercase names.
|
||
|
*/
|
||
|
|
||
|
/*------------------------ OCITypeMethodNext --------------------------------*/
|
||
|
|
||
|
/* ** OBSOLETE ** */
|
||
|
sword OCITypeMethodNext( OCIEnv *env, OCIError *err,
|
||
|
OCITypeIter *iterator_ort,
|
||
|
OCITypeMethod **mdo );
|
||
|
|
||
|
/*
|
||
|
NAME: OCITypeMethodNext - OCI Get a Method By Iteration.
|
||
|
PARAMETERS:
|
||
|
env (IN/OUT) - OCI environment handle initialized in object mode
|
||
|
err (IN/OUT) - error handle. If there is an error, it is
|
||
|
recorded in 'err' and this function returns OCI_ERROR.
|
||
|
The error recorded in 'err' can be retrieved by calling
|
||
|
OCIErrorGet().
|
||
|
iterator_ort (IN/OUT) - iterator for retrieving the next method;
|
||
|
see OCITypeIterNew() to set iterator.
|
||
|
mdo (OUT) - If this function completes successfully, 'mdo' points to
|
||
|
the selected method descriptor in the object cache. Positions
|
||
|
start at 1. The caller must allocate space for the
|
||
|
OCITypeMethod* before calling this routine and must not write
|
||
|
nto the space.
|
||
|
REQUIRES:
|
||
|
1) All type accessors require that the type be pinned before calling
|
||
|
any accessor.
|
||
|
2) if 'tdo' is not null, it must point to a valid type descriptor
|
||
|
in the object cache.
|
||
|
DESCRIPTION:
|
||
|
Iterate to the next method to retrieve.
|
||
|
RETURNS:
|
||
|
OCI_SUCCESS if the function completes successfully.
|
||
|
OCI_NO_DATA if there are no more attributes to iterate on; use
|
||
|
OCITypeIterSet() to reset the iterator if necessary.
|
||
|
OCI_INVALID_HANDLE if 'env' or 'err' is null.
|
||
|
OCI_ERROR if
|
||
|
1) any of the required parameters is null.
|
||
|
2) 'mdo' is not NULL but points to NULL data.
|
||
|
NOTES:
|
||
|
The type must be unpinned when the accessed information is no
|
||
|
longer needed.
|
||
|
*/
|
||
|
|
||
|
/*------------------------ OCITypeMethodName --------------------------------*/
|
||
|
|
||
|
/* ** OBSOLETE ** */
|
||
|
oratext *OCITypeMethodName( OCIEnv *env, OCIError *err,
|
||
|
const OCITypeMethod *mdo, ub4 *n_length );
|
||
|
/*
|
||
|
NAME: OCITypeMethodName - OCI Get a Method's NaMe.
|
||
|
PARAMETERS:
|
||
|
env (IN/OUT) - OCI environment handle initialized in object mode
|
||
|
err (IN/OUT) - error handle. If there is an error, it is
|
||
|
recorded in 'err' and this function returns OCI_ERROR.
|
||
|
The error recorded in 'err' can be retrieved by calling
|
||
|
OCIErrorGet().
|
||
|
mdo (IN) - pointer to the method descriptor in the object cache
|
||
|
n_length (OUT) - length (in bytes) of the 'name' parameter. The caller
|
||
|
must allocate space for the ub4 before calling this routine.
|
||
|
REQUIRES:
|
||
|
1) All type accessors require that the type be pinned before calling
|
||
|
any accessor.
|
||
|
2) All input parameters must not be NULL and must be valid.
|
||
|
DESCRIPTION:
|
||
|
Get the (non-unique) real name of the method.
|
||
|
RETURNS:
|
||
|
the non-unique name of the method or NULL if there is an error.
|
||
|
NOTES:
|
||
|
The type must be unpinned when the accessed information is no
|
||
|
longer needed.
|
||
|
*/
|
||
|
|
||
|
/*------------------------ OCITypeMethodEncap -------------------------------*/
|
||
|
|
||
|
/* ** OBSOLETE ** */
|
||
|
OCITypeEncap OCITypeMethodEncap( OCIEnv *env, OCIError *err,
|
||
|
const OCITypeMethod *mdo );
|
||
|
/*
|
||
|
NAME: OCITypeMethodEncap - Get a Method's ENcapsulation (private/public).
|
||
|
PARAMETERS:
|
||
|
env (IN/OUT) - OCI environment handle initialized in object mode
|
||
|
err (IN/OUT) - error handle. If there is an error, it is
|
||
|
recorded in 'err' and this function returns OCI_ERROR.
|
||
|
The error recorded in 'err' can be retrieved by calling
|
||
|
OCIErrorGet().
|
||
|
mdo (IN) - pointer to the method descriptor in the object cache
|
||
|
REQUIRES:
|
||
|
1) All type accessors require that the type be pinned before calling
|
||
|
any accessor.
|
||
|
2) All input parameters must not be NULL and must be valid.
|
||
|
DESCRIPTION:
|
||
|
Get the encapsulation (private, or public) of a method.
|
||
|
RETURNS:
|
||
|
the encapsulation (private, or public) of the method
|
||
|
NOTES:
|
||
|
The type must be unpinned when the accessed information is no
|
||
|
longer needed.
|
||
|
*/
|
||
|
|
||
|
/*------------------------ OCITypeMethodFlags -------------------------------*/
|
||
|
|
||
|
/* ** OBSOLETE ** */
|
||
|
OCITypeMethodFlag OCITypeMethodFlags( OCIEnv *env, OCIError *err,
|
||
|
const OCITypeMethod *mdo );
|
||
|
/*
|
||
|
NAME: OCITypeMethodFlags - OCI Get a Method's FLags
|
||
|
(inline, constant, virtual, constructor,
|
||
|
destructor).
|
||
|
PARAMETERS:
|
||
|
env (IN/OUT) - OCI environment handle initialized in object mode
|
||
|
err (IN/OUT) - error handle. If there is an error, it is
|
||
|
recorded in 'err' and this function returns OCI_ERROR.
|
||
|
The error recorded in 'err' can be retrieved by calling
|
||
|
OCIErrorGet().
|
||
|
mdo (IN) - pointer to the method descriptor in the object cache
|
||
|
REQUIRES:
|
||
|
1) All type accessors require that the type be pinned before calling
|
||
|
any accessor.
|
||
|
2) All input parameters must not be NULL and must be valid.
|
||
|
DESCRIPTION:
|
||
|
Get the flags (inline, constant, virutal, constructor, destructor) of
|
||
|
a method.
|
||
|
RETURNS:
|
||
|
the flags (inline, constant, virutal, constructor, destructor) of
|
||
|
the method
|
||
|
NOTES:
|
||
|
The type must be unpinned when the accessed information is no
|
||
|
longer needed.
|
||
|
*/
|
||
|
|
||
|
/*------------------------ OCITypeMethodMap ---------------------------------*/
|
||
|
|
||
|
/* ** OBSOLETE ** */
|
||
|
sword OCITypeMethodMap( OCIEnv *env, OCIError *err, const OCIType *tdo,
|
||
|
OCITypeMethod **mdo );
|
||
|
/*
|
||
|
NAME: OCITypeMethodMap - OCI Get the Method's MAP function.
|
||
|
PARAMETERS:
|
||
|
env (IN/OUT) - OCI environment handle initialized in object mode
|
||
|
err (IN/OUT) - error handle. If there is an error, it is
|
||
|
recorded in 'err' and this function returns OCI_ERROR.
|
||
|
The error recorded in 'err' can be retrieved by calling
|
||
|
OCIErrorGet().
|
||
|
tdo (IN) - pointer to to the type descriptor in the object cache
|
||
|
mdo (OUT) - If this function completes successfully, and there is a
|
||
|
map function for this type, 'mdo' points to the selected method
|
||
|
descriptor in the object cache. Otherwise, 'mdo' is null.
|
||
|
REQUIRES:
|
||
|
1) All type accessors require that the type be pinned before calling
|
||
|
any accessor.
|
||
|
2) All required input parameters must not be NULL and must be valid.
|
||
|
DESCRIPTION:
|
||
|
A type may have only one map function. 'OCITypeMethodMap()' finds
|
||
|
this function, if it exists, and returns a reference and a pointer to
|
||
|
the method descriptor in the object cache. If the type does not have a
|
||
|
map (relative ordering) function, then 'mdo_ref' and 'mdo' are set
|
||
|
to null and an error is returned.
|
||
|
RETURNS:
|
||
|
OCI_SUCCESS if the function completes successfully.
|
||
|
OCI_INVALID_HANDLE if 'env' or 'err' is null.
|
||
|
OCI_ERROR if
|
||
|
the type does not contain a map function.
|
||
|
NOTES:
|
||
|
The type must be unpinned when the accessed information is no
|
||
|
longer needed.
|
||
|
*/
|
||
|
|
||
|
/*------------------------ OCITypeMethodOrder -------------------------------*/
|
||
|
|
||
|
/* ** OBSOLETE ** */
|
||
|
sword OCITypeMethodOrder( OCIEnv *env, OCIError *err, const OCIType *tdo,
|
||
|
OCITypeMethod **mdo );
|
||
|
/*
|
||
|
NAME: OCITypeMethodOrder - OCI Get the Method's ORder function.
|
||
|
PARAMETERS:
|
||
|
env (IN/OUT) - OCI environment handle initialized in object mode
|
||
|
err (IN/OUT) - error handle. If there is an error, it is
|
||
|
recorded in 'err' and this function returns OCI_ERROR.
|
||
|
The error recorded in 'err' can be retrieved by calling
|
||
|
OCIErrorGet().
|
||
|
tdo (IN) - pointer to to the type descriptor in the object cache
|
||
|
mdo (OUT) - If this function completes successfully, and there is a
|
||
|
map function for this type, 'mdo' points to the selected method
|
||
|
descriptor in the object cache. Otherwise, 'mdo' is null.
|
||
|
REQUIRES:
|
||
|
1) All type accessors require that the type be pinned before calling
|
||
|
any accessor.
|
||
|
2) All required input parameters must not be NULL and must be valid.
|
||
|
DESCRIPTION:
|
||
|
A type may have only one ORder or MAP function. 'OCITypeMethodOrder()'
|
||
|
finds this function, if it exists, and returns a ref and a pointer
|
||
|
to the method descriptor in the object cache. If the type does not
|
||
|
have a map (relative ordering) function, then 'mdo_ref' and 'mdo' are
|
||
|
set to null and an error is returned.
|
||
|
RETURNS:
|
||
|
OCI_SUCCESS if the function completes successfully.
|
||
|
OCI_INVALID_HANDLE if 'env' or 'err' is null.
|
||
|
OCI_ERROR if
|
||
|
the type does not contain a map function.
|
||
|
NOTES:
|
||
|
The type must be unpinned when the accessed information is no
|
||
|
longer needed.
|
||
|
*/
|
||
|
|
||
|
/*------------------------ OCITypeMethodParams ------------------------------*/
|
||
|
|
||
|
/* ** OBSOLETE ** */
|
||
|
ub4 OCITypeMethodParams( OCIEnv *env, OCIError *err,
|
||
|
const OCITypeMethod *mdo );
|
||
|
/*
|
||
|
NAME: OCITypeMethodParams - OCI Get a Method's Number of Parameters.
|
||
|
PARAMETERS:
|
||
|
env (IN/OUT) - OCI environment handle initialized in object mode
|
||
|
err (IN/OUT) - error handle. If there is an error, it is
|
||
|
recorded in 'err' and this function returns OCI_ERROR.
|
||
|
The error recorded in 'err' can be retrieved by calling
|
||
|
OCIErrorGet().
|
||
|
mdo (IN) - pointer to the method descriptor in the object cache
|
||
|
REQUIRES:
|
||
|
1) All type accessors require that the type be pinned before calling
|
||
|
any accessor.
|
||
|
2) All input parameters must not be NULL and must be valid.
|
||
|
DESCRIPTION:
|
||
|
Get the number of parameters in a method.
|
||
|
RETURNS:
|
||
|
the number of parameters in the method
|
||
|
NOTES:
|
||
|
The type must be unpinned when the accessed information is no
|
||
|
longer needed.
|
||
|
*/
|
||
|
|
||
|
|
||
|
/*--------------------------------------------------------------------------*/
|
||
|
/* RESULT ACCESSORS */
|
||
|
/*--------------------------------------------------------------------------*/
|
||
|
|
||
|
/*-------------------------- OCITypeResult ---------------------------------*/
|
||
|
|
||
|
/* ** OBSOLETE ** */
|
||
|
sword OCITypeResult( OCIEnv *env, OCIError *err, const OCITypeMethod *mdo,
|
||
|
OCITypeElem **elem );
|
||
|
/*
|
||
|
NAME: OCITypeResult - OCI Get a method's result type descriptor.
|
||
|
PARAMETERS:
|
||
|
env (IN/OUT) - OCI environment handle initialized in object mode
|
||
|
err (IN/OUT) - error handle. If there is an error, it is
|
||
|
recorded in 'err' and this function returns OCI_ERROR.
|
||
|
The error recorded in 'err' can be retrieved by calling
|
||
|
OCIErrorGet().
|
||
|
mdo (IN) - pointer to the method descriptor in the object cache
|
||
|
elem (OUT) - If this function completes successfully, 'rdo' points to
|
||
|
the selected result (parameter) descriptor in the object cache.
|
||
|
REQUIRES:
|
||
|
1) All type accessors require that the type be pinned before calling
|
||
|
any accessor.
|
||
|
2) 'elem' MUST be the address of an OCITypeElem pointer.
|
||
|
DESCRIPTION:
|
||
|
Get the result of a method.
|
||
|
RETURNS:
|
||
|
OCI_SUCCESS if the function completes successfully.
|
||
|
OCI_INVALID_HANDLE if 'env' or 'err' is null.
|
||
|
OCI_ERROR if
|
||
|
1) any of the required parameters is null.
|
||
|
2) method returns no results.
|
||
|
NOTES:
|
||
|
The method must be unpinned when the accessed information is no
|
||
|
longer needed.
|
||
|
*/
|
||
|
|
||
|
|
||
|
/*--------------------------------------------------------------------------*/
|
||
|
/* PARAMETER ACCESSORS */
|
||
|
/*--------------------------------------------------------------------------*/
|
||
|
|
||
|
/*------------------------ OCITypeParamByPos -------------------------------*/
|
||
|
|
||
|
/* ** OBSOLETE ** */
|
||
|
sword OCITypeParamByPos( OCIEnv *env, OCIError *err,
|
||
|
const OCITypeMethod *mdo, ub4 position,
|
||
|
OCITypeElem **elem );
|
||
|
/*
|
||
|
NAME: OCITypeParamByPos - OCI Get a Parameter in a method By Position.
|
||
|
PARAMETERS:
|
||
|
env (IN/OUT) - OCI environment handle initialized in object mode
|
||
|
err (IN/OUT) - error handle. If there is an error, it is
|
||
|
recorded in 'err' and this function returns OCI_ERROR.
|
||
|
The error recorded in 'err' can be retrieved by calling
|
||
|
OCIErrorGet().
|
||
|
mdo (IN) - pointer to the method descriptor in the object cache
|
||
|
position (IN) - the parameter's position. Positions start at 1.
|
||
|
elem (OUT) - If this function completes successfully, 'elem' points to
|
||
|
the selected parameter descriptor in the object cache.
|
||
|
REQUIRES:
|
||
|
1) All type accessors require that the type be pinned before calling
|
||
|
any accessor.
|
||
|
DESCRIPTION:
|
||
|
Get a parameter given its position in the method. Positions start
|
||
|
at 1.
|
||
|
RETURNS:
|
||
|
OCI_SUCCESS if the function completes successfully.
|
||
|
OCI_INVALID_HANDLE if 'env' or 'err' is null.
|
||
|
OCI_ERROR if
|
||
|
1) any of the required parameters is null.
|
||
|
2) 'position' is not >= 1 and <= the number of parameters in the
|
||
|
method.
|
||
|
NOTES:
|
||
|
The type must be unpinned when the accessed information is no
|
||
|
longer needed.
|
||
|
*/
|
||
|
|
||
|
/*------------------------ OCITypeParamByName -------------------------------*/
|
||
|
|
||
|
/* ** OBSOLETE ** */
|
||
|
sword OCITypeParamByName( OCIEnv *env, OCIError *err,
|
||
|
const OCITypeMethod *mdo,
|
||
|
const oratext *name, ub4 n_length,
|
||
|
OCITypeElem **elem );
|
||
|
/*
|
||
|
NAME: OCITypeParamByName - OCI Get a Parameter in a method By Name.
|
||
|
PARAMETERS:
|
||
|
env (IN/OUT) - OCI environment handle initialized in object mode
|
||
|
err (IN/OUT) - error handle. If there is an error, it is
|
||
|
recorded in 'err' and this function returns OCI_ERROR.
|
||
|
The error recorded in 'err' can be retrieved by calling
|
||
|
OCIErrorGet().
|
||
|
mdo (IN) - pointer to the method descriptor in the object cache
|
||
|
name (IN) - the parameter's name
|
||
|
n_length (IN) - length (in bytes) of the 'name' parameter
|
||
|
elem (OUT) - If this function completes successfully, 'elem' points to
|
||
|
the selected parameter descriptor in the object cache.
|
||
|
REQUIRES:
|
||
|
1) All type accessors require that the type be pinned before calling
|
||
|
any accessor.
|
||
|
2) if 'mdo' is not null, it must point to a valid method descriptor
|
||
|
in the object cache.
|
||
|
DESCRIPTION:
|
||
|
Get a parameter given its name.
|
||
|
RETURNS:
|
||
|
OCI_SUCCESS if the function completes successfully.
|
||
|
OCI_INVALID_HANDLE if 'env' or 'err' is null.
|
||
|
OCI_ERROR if
|
||
|
1) any of the required parameters is null.
|
||
|
2) the method does not contain a parameter with the input 'name'.
|
||
|
NOTES:
|
||
|
The type must be unpinned when the accessed information is no
|
||
|
longer needed.
|
||
|
*/
|
||
|
|
||
|
/*------------------------ OCITypeParamPos ---------------------------------*/
|
||
|
|
||
|
/* ** OBSOLETE ** */
|
||
|
sword OCITypeParamPos( OCIEnv *env, OCIError *err,
|
||
|
const OCITypeMethod *mdo,
|
||
|
const oratext *name, ub4 n_length, ub4 *position,
|
||
|
OCITypeElem **elem );
|
||
|
/*
|
||
|
NAME: OCITypeParamPos - OCI Get a parameter's position in a method
|
||
|
PARAMETERS:
|
||
|
env (IN/OUT) - OCI environment handle initialized in object mode
|
||
|
err (IN/OUT) - error handle. If there is an error, it is
|
||
|
recorded in 'err' and this function returns OCI_ERROR.
|
||
|
The error recorded in 'err' can be retrieved by calling
|
||
|
OCIErrorGet().
|
||
|
mdo (IN) - pointer to the method descriptor in the object cache
|
||
|
name (IN) - the parameter's name
|
||
|
n_length (IN) - length (in bytes) of the 'name' parameter
|
||
|
position (OUT) - If this function completes successfully, 'position'
|
||
|
points to the position of the parameter in the method starting
|
||
|
at position 1. position MUST point to space for a ub4.
|
||
|
elem (OUT) - If this function completes successfully, and
|
||
|
the input 'elem' is not NULL, 'elem' points to the selected
|
||
|
parameter descriptor in the object cache.
|
||
|
REQUIRES:
|
||
|
1) All type accessors require that the type be pinned before calling
|
||
|
any accessor.
|
||
|
2) if 'mdo' is not null, it must point to a valid method descriptor
|
||
|
in the object cache.
|
||
|
DESCRIPTION:
|
||
|
Get the position of a parameter in a method. Positions start at 1.
|
||
|
RETURNS:
|
||
|
OCI_SUCCESS if the function completes successfully.
|
||
|
OCI_INVALID_HANDLE if 'env' or 'err' is null.
|
||
|
OCI_ERROR if
|
||
|
1) any of the parameters is null.
|
||
|
2) the method does not contain a parameter with the input 'name'.
|
||
|
NOTES:
|
||
|
The type must be unpinned when the accessed information is no
|
||
|
longer needed.
|
||
|
*/
|
||
|
|
||
|
/*------------------------ OCITypeParamElemMode -----------------------------*/
|
||
|
|
||
|
/* ** OBSOLETE ** */
|
||
|
OCITypeParamMode OCITypeElemParamMode( OCIEnv *env, OCIError *err,
|
||
|
const OCITypeElem *elem );
|
||
|
/*
|
||
|
NAME: OCITypeElemParamMode - OCI Get a parameter's mode
|
||
|
PARAMETERS:
|
||
|
env (IN/OUT) - OCI environment handle initialized in object mode
|
||
|
err (IN/OUT) - error handle. If there is an error, it is
|
||
|
recorded in 'err' and this function returns OCI_ERROR.
|
||
|
The error recorded in 'err' can be retrieved by calling
|
||
|
OCIErrorGet().
|
||
|
elem (IN) - pointer to the parameter descriptor in the object cache
|
||
|
(represented by an OCITypeElem)
|
||
|
REQUIRES:
|
||
|
1) All type accessors require that the type be pinned before calling
|
||
|
any accessor.
|
||
|
2) All input parameters must not be NULL and must be valid.
|
||
|
DESCRIPTION:
|
||
|
Get the mode (in, out, or in/out) of the parameter.
|
||
|
RETURNS:
|
||
|
the mode (in, out, or in/out) of the parameter
|
||
|
NOTES:
|
||
|
The type must be unpinned when the accessed information is no
|
||
|
longer needed.
|
||
|
*/
|
||
|
|
||
|
/*------------------------- OCITypeElemDefaultValue -------------------------*/
|
||
|
|
||
|
/* ** OBSOLETE ** */
|
||
|
oratext* OCITypeElemDefaultValue( OCIEnv *env, OCIError *err,
|
||
|
const OCITypeElem *elem,
|
||
|
ub4 *d_v_length );
|
||
|
/*
|
||
|
NAME: OCITypeElemDefaultValue - OCI Get the element's Default Value.
|
||
|
PARAMETERS:
|
||
|
env (IN/OUT) - OCI environment handle initialized in object mode
|
||
|
err (IN/OUT) - error handle. If there is an error, it is
|
||
|
recorded in 'err' and this function returns OCI_ERROR.
|
||
|
The error recorded in 'err' can be retrieved by calling
|
||
|
OCIErrorGet().
|
||
|
elem (IN) - pointer to the parameter descriptor in the object cache
|
||
|
(represented by an OCITypeElem)
|
||
|
d_v_length (OUT) - length (in bytes) of the returned default value.
|
||
|
The caller must allocate space for the ub4 before calling this
|
||
|
routine.
|
||
|
REQUIRES:
|
||
|
1) All type accessors require that the type be pinned before calling
|
||
|
any accessor.
|
||
|
2) All input parameters must not be NULL and must be valid.
|
||
|
DESCRIPTION:
|
||
|
Get the default value in text form (PL/SQL) of an element. For V8.0,
|
||
|
this only makes sense for a method parameter.
|
||
|
RETURNS:
|
||
|
The default value (text) of the parameter.
|
||
|
NOTES:
|
||
|
The type must be unpinned when the accessed information is no
|
||
|
longer needed.
|
||
|
*/
|
||
|
|
||
|
|
||
|
/*--------------------------------------------------------------------------*/
|
||
|
/* TYPE VERSION TABLE */
|
||
|
/*--------------------------------------------------------------------------*/
|
||
|
|
||
|
/* For V8.0, the type version table is meant to be an internal data structure
|
||
|
only for Oracle clients for type version maintanence purposes. A more
|
||
|
general version of the API may be made public in subsequent releases. */
|
||
|
|
||
|
|
||
|
/*--------------------------- OCITypeVTInit --------------------------------*/
|
||
|
|
||
|
/* ** OBSOLETE ** */
|
||
|
sword OCITypeVTInit( OCIEnv *env, OCIError *err );
|
||
|
/*
|
||
|
NAME: OCITypeVTInit - OCI type Version table INItialize
|
||
|
PARAMETERS:
|
||
|
env (IN/OUT) - OCI environment handle initialized in object mode
|
||
|
err (IN/OUT) - error handle. If there is an error, it is
|
||
|
recorded in 'err' and this function returns OCI_ERROR.
|
||
|
The error recorded in 'err' can be retrieved by calling
|
||
|
OCIErrorGet().
|
||
|
REQUIRES:
|
||
|
none
|
||
|
DESCRIPTION:
|
||
|
Allocate space for and initialize the type version table and the type
|
||
|
version table's index.
|
||
|
RETURNS:
|
||
|
OCI_SUCCESS if the function completes successfully.
|
||
|
OCI_INVALID_HANDLE if 'env' or 'err' is null.
|
||
|
OCI_ERROR if internal errors occurrs during initialization.
|
||
|
*/
|
||
|
|
||
|
/*--------------------------- OCITypeVTInsert -------------------------------*/
|
||
|
|
||
|
/* ** OBSOLETE ** */
|
||
|
sword OCITypeVTInsert( OCIEnv *env, OCIError *err,
|
||
|
const oratext *schema_name, ub4 s_n_length,
|
||
|
const oratext *type_name, ub4 t_n_length,
|
||
|
const oratext *user_version, ub4 u_v_length );
|
||
|
/*
|
||
|
NAME: OCITypeVTInsert - OCI type Version table INSert entry.
|
||
|
PARAMETERS:
|
||
|
env (IN/OUT) - OCI environment handle initialized in object mode
|
||
|
err (IN/OUT) - error handle. If there is an error, it is
|
||
|
recorded in 'err' and this function returns OCI_ERROR.
|
||
|
The error recorded in 'err' can be retrieved by calling
|
||
|
OCIErrorGet().
|
||
|
schema_name (IN, optional) - name of schema associated with the
|
||
|
type. By default, the user's schema name is used.
|
||
|
s_n_length (IN) - length of the 'schema_name' parameter
|
||
|
type_name (IN) - type name to insert
|
||
|
t_n_length (IN) - length (in bytes) of the 'type_name' parameter
|
||
|
user_version (IN) - user readable version of the type
|
||
|
u_v_length (IN) - length (in bytes) of the 'user_version' parameter
|
||
|
REQUIRES:
|
||
|
none
|
||
|
DESCRIPTION:
|
||
|
Insert an entry into the type version table and the type version
|
||
|
table's index. The entry's type name and user readable version
|
||
|
fields are updated with the input values. All other fields are
|
||
|
initialized to null.
|
||
|
RETURNS:
|
||
|
OCI_SUCCESS if the function completes successfully.
|
||
|
OCI_INVALID_HANDLE if 'env' or 'err' is null.
|
||
|
OCI_ERROR if
|
||
|
1) any of the parameters is invalid.
|
||
|
2) an entry for 'type_name' has already been registered in the
|
||
|
type version table.
|
||
|
*/
|
||
|
|
||
|
/*------------------------------ OCITypeVTSelect ----------------------------*/
|
||
|
|
||
|
/* OCITypeVTSelect - OCI type VERSion table SELECT entry */
|
||
|
/* ** OBSOLETE ** */
|
||
|
sword OCITypeVTSelect( OCIEnv *env, OCIError *err,
|
||
|
const oratext *schema_name, ub4 s_n_length,
|
||
|
const oratext *type_name, ub4 t_n_length,
|
||
|
oratext **user_version, ub4 *u_v_length,
|
||
|
ub2 *version );
|
||
|
/*
|
||
|
NAME: OCITypeVTSelect - OCI type Version table SELect entry.
|
||
|
PARAMETERS:
|
||
|
env (IN/OUT) - OCI environment handle initialized in object mode
|
||
|
err (IN/OUT) - error handle. If there is an error, it is
|
||
|
recorded in 'err' and this function returns OCI_ERROR.
|
||
|
The error recorded in 'err' can be retrieved by calling
|
||
|
OCIErrorGet().
|
||
|
schema_name (IN, optional) - name of schema associated with the
|
||
|
type. By default, the user's schema name is used.
|
||
|
s_n_length (IN) - length of the 'schema_name' parameter
|
||
|
type_name (IN) - type name to select
|
||
|
t_n_length (IN) - length (in bytes) of the 'type_name' parameter
|
||
|
user_version (OUT, optional) - pointer to user readable version of the
|
||
|
type
|
||
|
u_v_length (OUT, optional) - length (in bytes) of the 'user_version'
|
||
|
parameter
|
||
|
version (OUT, optional) - internal type version
|
||
|
REQUIRES:
|
||
|
All input parameters must not be NULL and must be valid.
|
||
|
DESCRIPTION:
|
||
|
Select an entry in the type version table by name.
|
||
|
RETURNS:
|
||
|
OCI_SUCCESS if the function completes successfully.
|
||
|
OCI_INVALID_HANDLE if 'env' or 'err' is null.
|
||
|
OCI_ERROR if
|
||
|
1) any of the parameters is invalid.
|
||
|
2) an entry with 'type_name' does not exist.
|
||
|
*/
|
||
|
|
||
|
/* Compatibility function - following function prototype retained for
|
||
|
compatibility only */
|
||
|
sword ortgcty( OCIEnv *env, OCIError *err, OCIType *coll_tdo,
|
||
|
OCIType **collelem_tdo );
|
||
|
|
||
|
/*---------------------------------------------------------------------------*/
|
||
|
/* Transient Type Construction functions */
|
||
|
/*---------------------------------------------------------------------------*/
|
||
|
|
||
|
sword OCITypeBeginCreate(OCISvcCtx *svchp, OCIError *errhp, OCITypeCode tc,
|
||
|
OCIDuration dur, OCIType **type);
|
||
|
/*
|
||
|
NAME: OCITypeBeginCreate - OCI Type Begin Creation of a transient type.
|
||
|
REMARKS
|
||
|
Begins the construction process for a transient type. The type will be
|
||
|
anonymous (no name). To create a persistent named type, the CREATE TYPE
|
||
|
statement should be used from SQL. Transient types have no identity.
|
||
|
They are pure values.
|
||
|
PARAMETERS:
|
||
|
svchp (IN) - The OCI Service Context.
|
||
|
errhp (IN/OUT) - The OCI error handle. If there is an error, it is
|
||
|
recorded in errhp and this function returns
|
||
|
OCI_ERROR. Diagnostic information can be obtained by
|
||
|
calling OCIErrorGet().
|
||
|
tc - The TypeCode for the type. The Typecode could
|
||
|
correspond to a User Defined Type or a Built-in type.
|
||
|
Currently, the permissible values for User Defined
|
||
|
Types are OCI_TYPECODE_OBJECT for an Object Type
|
||
|
(structured), OCI_TYPECODE_VARRAY for a VARRAY
|
||
|
collection type or OCI_TYPECODE_TABLE for a nested
|
||
|
table collection type. For Object types,
|
||
|
OCITypeAddAttr() needs to be called to add each of
|
||
|
the attribute types. For Collection types,
|
||
|
OCITypeSetCollection() needs to be called.
|
||
|
Subsequently, OCITypeEndCreate() needs to be called
|
||
|
to finish the creation process.
|
||
|
The permissible values for Built-in type codes are
|
||
|
specified in the user manual. Additional information
|
||
|
on built-ins if any (like precision, scale for
|
||
|
numbers, character set info for VARCHAR2s etc.) must
|
||
|
be set with a subsequent call to OCITypeSetBuiltin().
|
||
|
Subsequently OCITypeEndCreate() needs to be called
|
||
|
to finish the creation process.
|
||
|
dur - The allocation duration for the Type. Could be a
|
||
|
predefined or a user defined duration.
|
||
|
type(OUT) - The OCIType (Type Descriptor) that is being
|
||
|
constructed.
|
||
|
RETURNS:
|
||
|
OCI_SUCCESS if the function completes successfully.
|
||
|
OCI_ERROR on error.
|
||
|
*/
|
||
|
|
||
|
|
||
|
sword OCITypeSetCollection(OCISvcCtx *svchp, OCIError *errhp, OCIType *type,
|
||
|
OCIParam *collelem_info, ub4 coll_count);
|
||
|
/*
|
||
|
NAME: OCITypeSetCollection - OCI Type Set Collection information
|
||
|
REMARKS :
|
||
|
Set Collection type information. This call can be called only if the
|
||
|
OCIType has been constructed with a collection typecode.
|
||
|
PARAMETERS:
|
||
|
svchp (IN) - The OCI Service Context.
|
||
|
errhp (IN/OUT) - The OCI error handle. If there is an error, it is
|
||
|
recorded in errhp and this function returns
|
||
|
OCI_ERROR. Diagnostic information can be obtained by
|
||
|
calling OCIErrorGet().
|
||
|
type(IN OUT) - The OCIType (Type Descriptor) that is being
|
||
|
constructed.
|
||
|
collelem_info - collelem_info provides information on the collection
|
||
|
element. It is obtained by allocating an OCIParam
|
||
|
(parameter handle) and setting type information in
|
||
|
the OCIParam using OCIAttrSet() calls.
|
||
|
coll_count - The count of elements in the collection. Pass 0 for
|
||
|
a nested table (unbounded).
|
||
|
RETURNS:
|
||
|
OCI_SUCCESS if the function completes successfully.
|
||
|
OCI_ERROR on error.
|
||
|
*/
|
||
|
|
||
|
sword OCITypeSetBuiltin(OCISvcCtx *svchp, OCIError *errhp, OCIType *type,
|
||
|
OCIParam *builtin_info);
|
||
|
/*
|
||
|
NAME: OCITypeSetBuiltin - OCI Type Set Builtin information.
|
||
|
REMARKS:
|
||
|
Set Built-in type information. This call can be called only if the
|
||
|
OCIType has been constructed with a built-in typecode
|
||
|
(OCI_TYPECODE_NUMBER etc.).
|
||
|
PARAMETERS:
|
||
|
svchp (IN) - The OCI Service Context.
|
||
|
errhp (IN/OUT) - The OCI error handle. If there is an error, it is
|
||
|
recorded in errhp and this function returns
|
||
|
OCI_ERROR. Diagnostic information can be obtained by
|
||
|
calling OCIErrorGet().
|
||
|
type(IN OUT) - The OCIType (Type Descriptor) that is being
|
||
|
constructed.
|
||
|
builtin_info - builtin_info provides information on the built-in
|
||
|
(like precision, scale, charater set etc.). It is
|
||
|
obtained by allocating an OCIParam (parameter handle)
|
||
|
and setting type information in the OCIParam using
|
||
|
OCIAttrSet() calls.
|
||
|
RETURNS:
|
||
|
OCI_SUCCESS if the function completes successfully.
|
||
|
OCI_ERROR on error.
|
||
|
*/
|
||
|
|
||
|
sword OCITypeAddAttr(OCISvcCtx *svchp, OCIError *errhp, OCIType *type,
|
||
|
const oratext *a_name, ub4 a_length,
|
||
|
OCIParam *attr_info);
|
||
|
/*
|
||
|
NAME: OCITypeAddAttr - OCI Type Add Attribute to an Object Type.
|
||
|
REMARKS:
|
||
|
Adds an attribute to an Object type (that was constructed earlier with
|
||
|
typecode OCI_TYPECODE_OBJECT).
|
||
|
PARAMETERS:
|
||
|
svchp (IN) - The OCI Service Context
|
||
|
errhp (IN/OUT) - The OCI error handle. If there is an error, it is
|
||
|
recorded in errhp and this function returns
|
||
|
OCI_ERROR. Diagnostic information can be obtained by
|
||
|
calling OCIErrorGet().
|
||
|
type (IN/OUT) - The Type description that is being constructed.
|
||
|
a_name(IN) - Optional. gives the name of the attribute.
|
||
|
a_length - Optional. gives length of attribute name.
|
||
|
attr_info - Information on the attribute. It is obtained by
|
||
|
allocating an OCIParam (parameter handle) and setting
|
||
|
type information in the OCIParam using OCIAttrSet()
|
||
|
calls.
|
||
|
RETURNS:
|
||
|
OCI_SUCCESS if the function completes successfully.
|
||
|
OCI_ERROR on error.
|
||
|
*/
|
||
|
|
||
|
sword OCITypeEndCreate(OCISvcCtx *svchp, OCIError *errhp, OCIType *type);
|
||
|
/*
|
||
|
NAME: OCITypeEndCreate - OCI Type End Creation
|
||
|
REMARKS:
|
||
|
Finishes construction of a type description.Subsequently, only access
|
||
|
will be allowed.
|
||
|
PARAMETERS:
|
||
|
svchp (IN) - The OCI Service Context
|
||
|
errhp (IN/OUT) - The OCI error handle. If there is an error, it is
|
||
|
recorded in errhp and this function returns
|
||
|
OCI_ERROR. Diagnostic information can be obtained by
|
||
|
calling OCIErrorGet().
|
||
|
type (IN/OUT) - The Type description that is being constructed.
|
||
|
RETURNS:
|
||
|
OCI_SUCCESS if the function completes successfully.
|
||
|
OCI_ERROR on error.
|
||
|
*/
|
||
|
|
||
|
/*=========================*/
|
||
|
/* PUBLIC MACROS AND FLAGS */
|
||
|
/*=========================*/
|
||
|
|
||
|
/*--------------------------------------------------------------------------*/
|
||
|
/* TYPE ELEMENT FLAGS */
|
||
|
/*--------------------------------------------------------------------------*/
|
||
|
|
||
|
#define OCI_TYPEELEM_REF 0x8000 /* element is a REF */
|
||
|
#define OCI_TYPEPARAM_REQUIRED 0x0800 /* parameter is required */
|
||
|
|
||
|
/* macros to test flags */
|
||
|
#define OCI_TYPEELEM_IS_REF(elem_flag) \
|
||
|
(((elem_flag) & OCI_TYPEELEM_REF)!=0)
|
||
|
#define OCI_TYPEPARAM_IS_REQUIRED(param_flag) \
|
||
|
(((param_flag) & OCI_TYPEPARAM_REQUIRED)!=0)
|
||
|
|
||
|
|
||
|
#endif /* ORT_ORACLE */
|
||
|
|