OTL 4.0, Examples for Oracle 8,8i

The examples below work with Oracle 8, 8i / OCI8, 8i. In general, all of these examples should work with any Oracle version higher than Oracle 8.0, when OCI8, or OCI8i are enabled in OTL by setting #define OTL_ORA8, OTL_ORA8I. Oracle normally provides decent backward compatibility, at least at the source code level. All examples for Oracle 7 should work when OTL_ORA8, or  OTL_ORA8I is enabled.
  1. Example 10 (Simple Insert/Select)
  2. Example 11 ("Incompatible datatypes in stream operation" exception)
  3. Example 12 (PL/SQL block)
  4. Example 13 (Insert and Select via referenced cursor)
  5. Example 14 (Simple Insert/Select with the LONG datatype)
  6. Example 15 (Simple Insert/Select with the LONG RAW datatype)
  7. Example 16 (otl_stream::describe_select() with a simple Select)
  8. Example 17 (otl_stream::describe_select() with a referenced cursor)
  9. Example 18 (otl_stream and NULLs)
  10. Example 19 (Simple Insert/Select with the CLOB datatype)
  11. Example 20 (Simple Insert/Select with the BLOB datatype)
  12. Example 62 (Insert and Select via referenced cursor for Oracle 8i)
  13. Example 63 (otl_stream::describe_select() with a simple Select for Oracle 8i)
  14. Example 64 (otl_stream::describe_select() with a referenced cursor for Oracle 8i)
  15. Example 36 (otl_nocommit_stream in Oracle 8)
  16. Examle 39 (otl_datetime in Oracle 8)
  17. Example 41 (Insert/Update/Select with CLOB in Oracle 8)
  18. Example 42 (ODBC, OCI: LONG ==> CLOB. How to use OTL namespaces)
  19. Example 44 (Get Rows Processed Count in Oracle 8)
  20. Example 47 ("Auto-commit every SQL statement / commit-on-sucess" mode in Oracle 8)
  21. Example 50 (PL/SQL tables as parameters, Oracle 8)
  22. Example 52 (PL/SQL table of DATEs as parameter, Oracle 8)
  23. Example 54 (Datatype override in SELECT, Oracle 8)
  24. Example 56 (Insert/Update/Select with Oracle 8 CLOB in stream mode)
  25. Example 57 (Insert/Update/Select with Oracle 8 BLOB in stream mode)
  26. Example 59 (Using OTL/OCI8 in Pro*C/C++ environment)
  27. Example 60 (Using OTL/OCI8: server_attach/detach and session_begin/end)
  28. Example 61 (Using OTL/OCI8: server_attach/detach, session_begin/end, and session_reopen)
  29. Example 66 (Simple Insert/Select and otl_stream::clean() function for Oracle 8/8i)
  30. Example 69 (Dynamically allocated PL/SQL tables as parameters, Oracle 8)
  31. Example 71 (Dynamically allocated PL/SQL table of DATEs as parameter, Oracle 8)
  32. Example 73 (STL std::strings, ANSI C++ typecasts, Oracle 8)
  33. Example 76 (STL-compliant OTL stream iterators, Oracle 8)
  34. Example 86 (STL vector based PL/SQL tables as parameters, Oracle 8)
  35. Example 88 (STL vector based PL/SQL table of DATEs as parameter, Oracle 8)
  36. Example 98 (otl_value<T>/ otl_compact_value<T,null> / std::optional<T>, Oracle 8/8i)
  37. Example 102 (#define OTL_UNCAUGHT_EXCEPTION_ON, Oracle 8/8i)
  38. Example 111 (Group data type override in SELECT, Oracle 8/8i)
  39. Example 113 (OTL stream pooling, Oracle 8/8i)
  40. Example 116 (otl_stream::set_flush(), Oracle 8/8i)
  41. Example 119 (OTL_VALUE_TEMPLATE_ON, OTL_USER_DEFINED_STRING_CLASS_ON, Oracle 8/8i)
  42. Example 122 (Insert/Update/Select with Oracle 8i CLOB in stream mode)
  43. Example 123 (Insert/Update/Select with Oracle 8i BLOB in stream mode)
  44. Example 130 (Describe otl_stream's bind variables for Oracle 8i)
  45. Example 148 (otl_refcur_stream, basic)
  46. Example 149 (otl_refcur_stream, stored procedure)
  47. Example 150 (otl_refcur_stream, PL/SQL tables and reference cursors as parameters in stored procedure)
  48. Example 151 (otl_refcur_stream and otl_lob_stream, used together)
  49. Example 152 (get_stream_type)
  50. Example 153 (create_stored_proc_call)
  51. Example 156 (OTL/OCI8/9, otl_connect::cancel())
  52. Example 159 (otl_stream::clean(), cancelling SELECT's fetch sequence, Oracle 8i/9i )
  53. Example 162 (otl_stream::clean(), cancelling REF CURSOR's fetch sequence, Oracle 8i/9i)
  54. Example 164 (otl_stream::clean(), cleaning the SELECT stream's error flags, Oracle 8i/9i )
  55. Example 167 (otl_stream::clean(), cleaning the REF CURSOR otl_stream's error flags, Oracle 8i/9i )
  56. Example 169 (#define's OTL_DEFAULT_XXX_NULL_TO_VAL, Oracle 7/8/8i/9i)
  57. Example 172 (#define OTL_ORA_TEXT_ON, Oracle 8/8i/9i)
  58. Example 173 (#define OTL_ORA_TEXT_ON, Oracle 8/8i/9i)
  59. Example 204 (otl_datetime container with TIMESTAMP values down to microseconds in Oracle 9i, and std::optional<T>)
  60. Example 205 (otl_exception, derived from a base class, Oracle)
  61. Example 208 (lob_stream and SELECT INTO FOR  UPDATE, Oracle)
  62. Example 210 (Oracle and RAW column)
  63. Example 211 (OTL_ADD_NULL_TERMINATOR_STRING_SIZE,Oracle)
  64. Example 219 (otl_connect::change_password() and Oracle 8i/9i)
  65. Example 221 (std::string and LONGs, Oracle 8/8i/9i)
  66. Example 222 (std::string and CLOBs, Oracle 8/8i/9i)
  67. Example 232 (otl_stream::flush() and duplicate rows, Oracle 8, 8i, 9i)
  68. Example 233 (#define OTL_ORA_MAP_STRINGS_TO_CHARZ, Oracle 8, 8i, 9i)
  69. Example 234 (SQL statement label, Oracle 8,8i,9i)
  70. Example 245 (user defined string class and LONGs, Oracle 8/8i/9i)
  71. Example 246 (user defined string class and CLOBs, Oracle 8/8i/9i)
  72. Example 250 (OTL tracing, Oracle 8/8i/9i)
  73. Example 254 (Explict bind variables in SELECT statement column definitions, Oracle 8/8i/9i)
  74. Example 258 (64-bit signed integers, Oracle 8/8i/9i)
  75. Example 260 (OTL stream read iterator, simple SELECT, Oracle)
  76. Example 261 (OTL stream read iterator, reference cursor, Oracle)
  77. Example 289 (Strict numeric type checking on SELECTs)
  78. Example 292 (common interface for otl_stream and otl_refcur_stream)
  79. Example 308 (Stream buffer size as int, simple Insert/Select)
  80. Example 312 (Large PL/SQL tables as parameters)
  81. Example 314 (PL/SQL tables of CHAR and VARCHAR2 together as parameters)
  82. Example 315 (Insert/Update/Select with Oracle 8i CLOB in stream mode and otl_stream_read_iterator)
  83. Example 316 (Insert/Update/Select with Oracle 8i BLOB in stream mode and otl_stream_read_iterator)
  84. Example 339 (OTL stream read iterator, "get by name" functions, Oracle)
  85. Example 372 (Simple Insert/Select, otl_connect::operator<<, <<=, >>)
  86. Example 378 (Insert/Update/Select with Oracle 8i/9i/10g CLOB in stream mode and stored procs)
  87. Example 379 (Insert/Update/Select, Oracle 8i/9i/10g CLOBs in stream mode, and std:strings)
  88. Example 385 (Insert/Update/Select with Oracle 8i/9i/10g CLOB in stream mode and otl_long_string::set_last_piece())
  89. Example 386 (Insert/Update/Select with Oracle 8i/9i/10g BLOB in stream mode and otl_long_string::set_last_piece())
  90. Example 446 (Simple Insert/Select with Oracle RAW datatype)
  91. Example 457 (Simple Insert/Select with Oracle RAW datatype and otl_stream_read_iterator)
  92. Example 687 (OTL stream read iterator,  otl_refcur_stream, Oracle)
  93. Example 692 (Customizing the date format in OTL tracing via #define OTL_TRACE_FORMAT_DATETIME)
  94. Example 693 (Skipping to the end of the row with otl_stream::skip_to_end_of_row())
  95. Example 711 (END-OF_ROW check)
  96. Example 717 (SQL tool neutral bind variable syntax)
  97. Example 729 (Large numbers (larger than singed 64-bit int))
  98. Example 735 (Insert and Select via a PL/SQL function that returns a referenced cursor)
  99. Example 736 (get_dirty_buf_len() with INSERT and SELECT)
  100. Example 741 (Extended / customized numeric data type support)
  101. Example 746 ( OTL_ORA_CUSTOM_MAP_NUMBER_ON_SELECT)
  102. Example 748 (VARCHAR column bound as RAW[XXX] for reading/writing std::strings that have null terminators ('\0') in the middle)
  103. Example 755 (otl_read_from_stream() / otl_write_to_stream() and STL containers)
  104. Example 763 (otl_connect_pool)
  105. Example 772 (OTL stream, std::tuple<>, and std::array<char,...>)

Prev NextContentsGo Home

Copyright 1996-2017, Sergei Kuchin, email: skuchin@gmail.com, skuchin@gmail.com .

Permission to use, copy, modify and redistribute this document for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.