📄 readme_proc.txt
字号:
With database "Reliable Unicode Data Type Support" in Oracle 9i, Pro*C/C++ UTF16 data can be bound to both CHAR and NCHAR columns. In Pro*C/C++ 9i, NCHAR will be used as the default character set form for Unicode(UTF16) data to avoid possible data loss when target column is NCHAR. When used with CHAR, a minor performance impact is expected. A new precompiler option 'UTF16_CHARSET' will be introduced in Pro*C/C++ for 9i to use with Unicode(UTF16) variables for performance and backward compatibility. UTF16_CHARSET Purpose ------- Specify the character set form used by UNICODE(UTF16) variables. Syntax ------ UTF16_CHARSET={NCHAR_CHARSET|DB_CHARSET} Default ------- NCHAR_CHARSET Usage Notes ----------- Can be used only on the command line or in a configuration file, but not inline. If UTF16_CHARSET=NCHAR_CHARSET(the default), the Unicode(UTF16) bind/define buffer will be converted according to server side National character set. Possible performance impact might be seen when target column is CHAR. If UTF16_CHARSET=DB_CHARSET, the Unicode(UTF16) bind/define buffer will be converted according to server side database character set. User should be aware of possible data loss when target column is NCHAR. Note that, starting in 9i, if the environment variable NLS_NCHAR is left unspecified, the character set defined or indirectly defined by NLS_LANG will be used for NCHAR data. See NLS_LANG in the Oracle9i National Language Support GUide for details. b. Datetime Datetime support in Pro*C will extend to all the Datetime features in 9i. c. XA Support for V8OCI With 9i, interoperability between XA and V8OCI will become standard. Users should be able to connect through XA, register that connection again SQLLIB and obtain that same connection back through SQLEnvGet and SQLSvcCtxGet. More importantly, 8i features that have been segregated from XA users are now fully supported in XA including but not limited to all object/navigational support, lobs, dml returning, and so on. On this note, support for sqllda and hstdefs will be deprecated with this release. 7. New Non-Object Functionality for Release 9.2.0 a. Support for Scrollable Cursor in Pro*C/C++ With 9.2.0 Pro*C/C++, users can use scrollable cursors to fetch data in random order. b. Support for Connection Pooling in Pro*C/C++ With 9.2.0 Pro*C/C++, users can use connection pool option to optimise the performance of Pro*C/C++ applications. The connection pool option is not enabled by default. c. New makefiles to build Pro*C/C++ demos Along with demo_proc.mk makefile you will find two more makefiles, viz., demo_proc32.mk and demo_proc64.mk, when you install 9.2.0 Pro*C/C++. The new makefiles are to be used if additional 32/64-bit support is required. For example, if platform x is 64-bit by default, but 32-bit linking also supported, then demo_proc.mk would create 64-bit executables and demo_proc32.mk would be used to create 32-bit executables. demo_proc64.mk, in this example, would do the same thing as that of demo_proc.mk.8. New Object Functionality for Pro*C/C++ Version 8.0.3 through 8.0.5. 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).9. 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. 10. New Object Functionality for Pro*C/C++ Release 9i a. Inheritance As part of the Oracle 9i support for object types, the precompiler object support now includes support for inheritance. Pro*C/C++ 9i supports inheriance of objects types with the following SQL operators: * IS OF type * TREAT b. Multilevel Collections The collection object types support for release 9i has been enhanced to allow collections which have multiple levels of nested tables and varrays. 11. 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 9i (9.0.1) and 9.2.0===============================================2201219 PRO*C/C++ CODE ERRORS ON ULONG_VARCHAR When ulong_varchar variable was used as a host variable in LOB READ, PROC generated PCC-02428 error.2093437 PROC generated a precompiler error, when new SQL syntax was used in embedded sql statement. When new SQL syntax like "WAIT n" or "CASE ... WHEN ..." was used in embedded sql statement, PROC generated precompiler error. Other than this fix, this could have been handled in the testcase by using appropriate dynamic sql method.2093408 Compilation of SELECTs with *CASE WHEN* or *FOR UPDATE OF ... WAIT ..* fails2083243 Descriptor allocation after restart of database core dumped When a database is shutdown and restarted while an application is allocating and deallocating descriptors, core dump occurs while allocating descriptor.1991925 Get descriptor items returned wrong values for NCHAR USing ansi dyanmic sql and selecting data from NCHAR columns gave incorrect values for LENGTH, RETURNED_LENGTH, OCTET_LENGTH and returned OCTET length.1980047 Value semantics with ANSI dynamic sql generated core dump. When value semantics with ANSI dynamic sql is used after the use of same descriptor for reference semantics, and no data buffer is set using the set descriptor for a particular location, core dump occurred. With the fix, core dump is being eliminated.1923593 Core dumps when running LOBDEMO1 executable with 32bit static library Buffer over flow always happens when 'lobdemo1' run. Buffer 'curdate' did not have enough rooms to copy 14byte data. Therefore the length of 'curdate' has been increased.1754786 DML returning into array of lob locators generated core dumped When DML returning clause was used to return values into an array of Lob Locators core dump occured.1245446 PROC generated core dump for client side descriptor statement. PROC generated core dump for client side descriptor statement, EXEC SQL DESCRIBE S_H1 INTO sdp With the fix, core dump has been eliminated.1192868 Allocate Descriptor after a named connection failed with error ora-1012 When connected using a named connection and tried to allocate a descriptor,the allocate failed with error ora-1012.Bugs Fixed between Release 8.1.7 and 9i=======================================1576145 Performance degraded from 8.0 to 8.1 due to unnecessary defines. For the single FETCH statement in the loop, performance degraded from 8.0 to 8.1. This was due to unnecessary define calls for each host variable for every iterations. With the fix, the same FETCH statement after it gets parsed, and defined all its host variables, will not call defines for any next iterations.1410679 Performance degraded for array fetch when missing indicator variables. For the array fetch without indicator variable, the fetching was done with single row, making more roundtrips to server for data fetching in 8i. With the fix, the number of fetch calls is the same as in 8.0.6.1410582 Objects allocated and freed in a loop leaked memory When objects are allocated and freed in a loop memory leak was observed. With the fix memory leak is being eliminated. 1390597 ORA-00001 didnot print column name with the error message. When the valid error message ORA-00001 got generated, it printed the error message without the column name as: ORA-00001: unique constraint (.) violated With the fix error message is printed as: ORA-00001: unique constraint (SCOTT.SYS_C002621) violated1239856 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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -