📄 readme.doc
字号:
a. Support For Object Types Pro*C/C++ supports the manipulation of host variables of object types via Embedded SQL and PL/SQL statements. Users must run OTT (Object Type Translator) to generate typedefs of C structs for named types defined in the Oracle8 database, and declare variables of these types (or pointers to these types) in the Pro*C/C++ application program to correspond to object instances in the Oracle8 database. b. Use of OTT-generated Type Files An additional Pro*C/C++ input file, the INTYPE file, is specified on the command-line to give the precompiler necessary information about object types. This file is generated by OTT during translation of object types in an Oracle8 database to typedefs of C structs. c. Support for Navigational Operations A Navigational Interface for providing operations for Creating Objects, manipulating Object References, Setting and Getting Attributes of Objects as well as controlling the Pinning and Unpinning of Objects in the Object Cache has been provided. NOTE: A REF needs to be allocated in all instances where it will be returned. Specifically, in an EXEC SQL OBJECT CREATE with RETURNING REF call, the host variable following 'RETURNING REF INTO' must contain a previously allocated REF (via EXEC SQL ALLOCATE :hv).7. New Object Functionality for Pro*C/C++ Release 8.1.3. a. The Navigational Interface for release 8.1.3 has been enhanced since its introduction in 8.0.3 to include the ability to Get and Set LOB and Collection Attributes of an Object Type as well. The optional FOR UPDATE clause in an EXEC SQL OBJECT DEREF statement has also been enhanced with an optional NOWAIT. b. Enhanced Support for Collections A new Embedded SQL Interface has been provided to allow for the ability to access, modify and update the individual elements of a Collection. This interface is intended to provide similar functional support for Collections that the OCI API currently provides in a convenient, easy to use Embedded SQL sytle. 8. Interoperation of Pro*C/C++ 8.1.6 programs with the Oracle8 OCI API a. New OCI Interoperability Functions New library routines SQLEnvGet() and SQLSvcCtxGet() are introduced to support interoperation of 8.1.6 Pro*C/C++ programs with 8.1 OCI. The 8.1 OCI environment handle and the 8.1 OCI service context handle for a database connection established in Pro*C/C++ may be obtained via the above routines. Demo programs of most new functionality introduced between Releases 8.0.3 and 8.1.6 of Pro*C/C++ can be found in the Pro*C/C++ demo directory along with supporting SQL scripts. Included are o ansidyn1 - Use of the ANSI Dynamic SQL Interface in Pro*C/C++ o ansidyn2 - Use of the ANSI Dynamic SQL Interface in Pro*C/C++ o objdemo1 - Use of Object types in Pro*C/C++ o coldemo1 - Use of Collection types in Pro*C/C++ o lobdemo1 - Use of LOB types in Pro*C/C++ o sample4 - Use of the Embedded SQL LOB Interface in Pro*C/C++ o navdemo1 - Use of the Navigational Interface in Pro*C/C++ The code for these programs can be found in $ORACLE_HOME/precomp/demo/proc with supporting SQL scripts provided in the $ORACLE_HOME/precomp/demo/sql directory.SECTION 3: BUGS KNOWN TO EXIST IN Pro*C/C++ RELEASE 8.1.6------------------------------------------------------------------------------------------------------------------773318 When warnings and errors are both required, the warning might be lost because OCI only provides the error in this case.SECTION 4: BUGS FIXED IN THIS RELEASE--------------------------------------------------------------------------Bugs Fixed between Release 8.1.6 and Release 8.1.7==================================================753504 Pro*C/C++ could not #include header file without extension When #include header file without extension, Pro*C/C++ will give precompile-time error. 780572 Usage of objects in XA application generated random runtime error. When object functionality was used in XA applications, it generated random execution error. This was caused by not having error handle correctly initialized for runtime processing. With the fix, meaningful error message "SQL-02139: Unable to get the OCI handles" gets generated.994713 PROC dumped core when invalid syntax was used. PROC dumped core when invalid syntax was used. e.g. For the following invalid syntax, short aj = 0 ; EXEC SQL OBJECT SET NAME OF :person:aj TO :c INDICATOR :c_ind; PROC with the fix generates precompiler error as: Semantic error at line 246, column 43, file t994713.pc: EXEC SQL OBJECT SET NAME OF :person:aj TO :c INDICATOR :c_ind; ..........................................11066827 DML statement against non-existing record caused defunct process DML statement against the record which does not exist might cause defunct process and for each NOT FOUND condistion will make unnecessary round-trip call to the server resulting in poor performance.1071050 Use of "ORDER BY" in subquery led to a precompiler error When "ORDER BY" was used in the subquery it lead to precompiler error as it was not supported. It is supported in sql from 8.1 onwards and hence should be supported in the corresponding proc versions. For example :The statement select ename,sal,comm into... (select ename,sal,comm from emp order by ename) where rownum < 10 failed in proc giving a syntax error. With the fix the "ORDER BY" in the subqueries is accepted as valid syntax.1103175 SQLCA.SQLWARN 3RD ELEMENT IS NULL INSPITE OF THE 1ST ELEMENT SHOWING 'W' Third element of the sqlwarn array not turned on when null data was queried.1117747 Application generated ORA-2111 during runtime. Whenever format buffer pointer of SQLDA1 was initialized in the application, SQLLIB generated ORA-2111 error due to freeing this buffer format of mismatched size. With the fix, buffer pointer is freed only if the space was allocated by SQLLIB.1125748 Core dump occurred in some cases of dynamic sql statements Core dump occurred in some cases of dynamic sql statements. When number of columns fetched were bigger than the allocated number of columns, F variable had the negative value. This value was not correctly converted for comparisions in some compilers (like on AIX). With the fix, correct comparision is being done.1151788 GPF ON ANSI DYNAMIC FETCH WHEN DATA IS TYPE 5 AND LEN IS MAX GPF may occur on an ANSI dynamic fetch when data is type 5 and the reported length of that data field is the allocated length or the length is defaulted to the declared length of the host variable.1171054 GPF possible for XA, V7 connects and use of SQLSvcCtxGet due to sqlcap A dangling sqlcap pointer (sqlca pointer for the runtime context) may cause a GPF to occur if the sqlcap is allowed to dangle. GPF ON ANSI DYNAMIC FETCH WHEN DATA IS TYPE 5 AND LEN IS MAX.1178313 Wrong values in "C" VARIABLE IN SQLDA generated core dump. Wrong values in "C" VARIABLE IN SQLDA generated core dump. With the fix, C is going to hold the truncated length (i.e. MAX_VNAME_LEN) of the corresponding column name, whenever the length of column name is bigger than MAX_VNAME_LEN.1239856 PROC generated precompiler error, when "sizeof" was used. When "sizeof" was used in resolving the type of a host variable, PROC generated a precompiler error. With the fix warning is being generated for the same host variable stating that "sizeof" expression is NOT actually being evaluated. e.g. char dst[1024] ; char dyn_statement[sizeof(dst)]; EXEC SQL VAR dyn_statement IS STRING(1024); it will generate following warning message: Semantic error at line 61, column 27, file t1239856.pc: char dyn_statement[sizeof(dst)]; ..........................1 PCC-W-02314, cannot evaluate constant sizeof expression Note: In some scenerios the application may not work as intended. So, it is highly recommended to avoid the use of "sizeof" in the type of any host variables.1285882 XA client with V8OCI connection generated ORA-3114 When XA application used XA connection and V8OCI connection, runtime generated ORA-3114 error. In some cases the inserted data was lost, creating the bad execution behavior. With the fix, appropriate runtime data structures get initialized whenever V8OCI and XA connection is used together in the application.1328685 ORA-1012 got generated on FETCH PROC runtime generated ORA-1012 while doing the FETCH. With the fix, FETCH executes successfully.1343460 PROCOB runtime generated ORA-1727 error. PROCOB runtime generated ORA-1727 error while using dynamic sql statements. The error was flagged by V8 OCI to suggest that precision and scale were not correctly setup. With the fix, ORA-1727 no longer gets generated.Bugs Fixed between Release 8.1.5 and Release 8.1.6==================================================927164 ORA-2103 occurred, with RELEASE_CURSOR=YES HOLD_CURSOR=NO When application was built using RELEASE_CURSOR=YES, and HOLD_CURSOR=NO options, at runtime ORA-2103 occurred. The error was caused due to freeing some elements of cursor, even though it was trying to re use it. Appropriate conditions has been placed to fix this problem.922250 Missing '\' for line continuation in generated file Pro*C/C++ generated bad code by missing '\' as a line continuation character in some cases.909074 Can not use upper case filename to open lowercase include file Pro*C/C++ generated a 'PCC-S-02015, unable to open include file' error when using upper case filenames to open an include file that was actually in lowercase.872814 EXEC SQL READ for NCLOB data returns ORA-24806 error Applications generated an 'ORA-24806: LOB form mismatch' when using NCLOBs in embedded SQL LOB READ (and WRITE) statements.850965 Problem mixing pointer/non-pointer host/indicator structs Pro*C/C++ could not process pointer indicator structs when mixed with a corresponding non-pointer host structure. For example typedef struct { .. } hst; typedef struct { .. } ind; hst h; ind i, *ip = &i; EXEC SQL SELECT .. INTO :h:ip FROM ..; The mixing of a host/indicator struct pair where one was a pointer and the other was not would result in semantic precompilation errors.826057 ANSI dynamic SQL option type_code fails on 64 bit ports The TYPE_CODE option, when set to the value ANSI and used with ANSI dynamic SQL gave incorrect results on 64 bit platforms.821874 Use of the AT clause caused extra file descriptor usage for SQLUS.MSB Whenever the AT clause was used during a CONNECT statement, the SQLUS.MSB message file was getting opened, which was not necessary. Now, opening of SQLUS.MSB has been delayed until an error occurs.791384 Append of a LOB to a NULL LOB returns nondescript error message An APPEND of a LOB to a NULL LOB is an error. However, the error message returned by SQLLIB did not correctly describe the situation.764996 Unable to use a table alias in an INSERT statement Use of a a table alias in any INSERT statement caused a syntactic error. For example.. EXEC SQL INSERT INTO persons p VALUES .. RETURNING .. INTO .. ; The table alias, 'p', was not accepted by Pro*C/C++ with a syntax error being the result.761892 Pro*C/C++ does not recognize connection qualifiers Pro*C/C++ was not able to parse the use of connection qualifiers in a table reference. For example, the following EXEC SQL SELECT .. INTO .. FROM sys.dual@v7bug.world@q1; would result in syntactic errors on the use of the '@' signifying the connection qualifier.693939 Blank padded character types were not padded with ANSI dynamic SQL Character, ANSI varying character and ANSI fix character types were not blank padded when used in ANSI dynamic programs. They are now blank padded and the returned length field is undefined.690984 Pro*C/C++ sees host field length as 0 if length is specified in HEX
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -