ruby-oci8-master 2.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. data/ChangeLog +2321 -0
  2. data/Makefile +88 -0
  3. data/NEWS +303 -0
  4. data/README +76 -0
  5. data/VERSION +1 -0
  6. data/dist-files +83 -0
  7. data/doc/api.en.html +527 -0
  8. data/doc/api.en.rd +554 -0
  9. data/doc/api.ja.html +525 -0
  10. data/doc/api.ja.rd +557 -0
  11. data/doc/manual.css +35 -0
  12. data/ext/oci8/.document +18 -0
  13. data/ext/oci8/MANIFEST +18 -0
  14. data/ext/oci8/apiwrap.c.tmpl +182 -0
  15. data/ext/oci8/apiwrap.h.tmpl +61 -0
  16. data/ext/oci8/apiwrap.rb +91 -0
  17. data/ext/oci8/apiwrap.yml +1455 -0
  18. data/ext/oci8/attr.c +105 -0
  19. data/ext/oci8/bind.c +366 -0
  20. data/ext/oci8/connection_pool.c +199 -0
  21. data/ext/oci8/encoding.c +289 -0
  22. data/ext/oci8/env.c +178 -0
  23. data/ext/oci8/error.c +378 -0
  24. data/ext/oci8/extconf.rb +179 -0
  25. data/ext/oci8/lob.c +805 -0
  26. data/ext/oci8/metadata.c +232 -0
  27. data/ext/oci8/object.c +727 -0
  28. data/ext/oci8/oci8.c +1156 -0
  29. data/ext/oci8/oci8.h +574 -0
  30. data/ext/oci8/oci8lib.c +527 -0
  31. data/ext/oci8/ocidatetime.c +484 -0
  32. data/ext/oci8/ocihandle.c +751 -0
  33. data/ext/oci8/ocinumber.c +1612 -0
  34. data/ext/oci8/oraconf.rb +1119 -0
  35. data/ext/oci8/oradate.c +611 -0
  36. data/ext/oci8/oranumber_util.c +352 -0
  37. data/ext/oci8/oranumber_util.h +24 -0
  38. data/ext/oci8/post-config.rb +5 -0
  39. data/ext/oci8/stmt.c +673 -0
  40. data/ext/oci8/thread_util.c +85 -0
  41. data/ext/oci8/thread_util.h +30 -0
  42. data/ext/oci8/win32.c +137 -0
  43. data/lib/.document +1 -0
  44. data/lib/dbd/OCI8.rb +591 -0
  45. data/lib/oci8.rb.in +94 -0
  46. data/lib/oci8/.document +8 -0
  47. data/lib/oci8/bindtype.rb +349 -0
  48. data/lib/oci8/compat.rb +113 -0
  49. data/lib/oci8/connection_pool.rb +99 -0
  50. data/lib/oci8/datetime.rb +611 -0
  51. data/lib/oci8/encoding-init.rb +74 -0
  52. data/lib/oci8/encoding.yml +537 -0
  53. data/lib/oci8/metadata.rb +2132 -0
  54. data/lib/oci8/object.rb +581 -0
  55. data/lib/oci8/oci8.rb +721 -0
  56. data/lib/oci8/ocihandle.rb +425 -0
  57. data/lib/oci8/oracle_version.rb +144 -0
  58. data/lib/oci8/properties.rb +73 -0
  59. data/metaconfig +142 -0
  60. data/pre-distclean.rb +7 -0
  61. data/ruby-oci8.gemspec +63 -0
  62. data/setup.rb +1331 -0
  63. data/test/README +4 -0
  64. data/test/config.rb +122 -0
  65. data/test/test_all.rb +51 -0
  66. data/test/test_appinfo.rb +63 -0
  67. data/test/test_array_dml.rb +333 -0
  68. data/test/test_bind_raw.rb +46 -0
  69. data/test/test_bind_time.rb +178 -0
  70. data/test/test_break.rb +96 -0
  71. data/test/test_clob.rb +82 -0
  72. data/test/test_connstr.rb +81 -0
  73. data/test/test_datetime.rb +582 -0
  74. data/test/test_dbi.rb +366 -0
  75. data/test/test_dbi_clob.rb +53 -0
  76. data/test/test_encoding.rb +100 -0
  77. data/test/test_error.rb +88 -0
  78. data/test/test_metadata.rb +1399 -0
  79. data/test/test_oci8.rb +434 -0
  80. data/test/test_oracle_version.rb +70 -0
  81. data/test/test_oradate.rb +256 -0
  82. data/test/test_oranumber.rb +746 -0
  83. data/test/test_rowid.rb +33 -0
  84. metadata +137 -0
@@ -0,0 +1,35 @@
1
+ h1 {
2
+ color: #000080;
3
+ background: #e0e0ff;
4
+ border-color: #8080d0;
5
+ border-style: solid;
6
+ border-top-style: none;
7
+ border-left-style: none;
8
+ border-bottom-width: thick;
9
+ border-right-width: thin;
10
+ padding-top: 0.2em;
11
+ padding-bottom: 0.2em;
12
+ text-align: center
13
+ }
14
+ h2 {
15
+ color: #000080;
16
+ background: #e0e0ff;
17
+ border-color: #8080d0;
18
+ border-style: solid;
19
+ border-top-style: none;
20
+ border-left-style: none;
21
+ border-bottom-width: thick;
22
+ border-right-width: thin;
23
+ }
24
+ code {
25
+ color: blue
26
+ }
27
+ var {
28
+ color: brown
29
+ }
30
+ dt {
31
+ color: red
32
+ }
33
+ pre {
34
+ background: #e0ffff
35
+ }
@@ -0,0 +1,18 @@
1
+ #attr.c
2
+ #oci8lib.c
3
+ #env.c
4
+
5
+ oci8.c
6
+ ocihandle.c
7
+ bind.c
8
+ stmt.c
9
+ encoding.c
10
+ error.c
11
+ metadata.c
12
+
13
+ lob.c
14
+ ocinumber.c
15
+ ocidatetime.c
16
+ oradate.c
17
+ object.c
18
+ connection_pool.c
@@ -0,0 +1,18 @@
1
+ MANIFEST
2
+ attr.c
3
+ bind.c
4
+ const.c
5
+ descriptor.c
6
+ env.c
7
+ error.c
8
+ extconf.rb
9
+ handle.c
10
+ lob.c
11
+ oci8.c
12
+ oci8.h
13
+ oraconf.rb
14
+ oradate.c
15
+ oranumber.c
16
+ param.c
17
+ stmt.c
18
+ svcctx.c
@@ -0,0 +1,182 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ <%= header_comment
3
+ # This file is processed by apiwrap.rb.
4
+ %>
5
+ #define API_WRAP_C 1
6
+ #include "apiwrap.h"
7
+ #ifdef HAVE_RB_THREAD_BLOCKING_REGION
8
+ #define BLOCKING_FUNCTION_EPILOGUE(svcctx) do { (svcctx)->executing_thread = Qnil; } while (0)
9
+ #else
10
+ #define BLOCKING_FUNCTION_EPILOGUE(svcctx) do { } while (0)
11
+ #endif
12
+
13
+ <%
14
+ prev_name = ''
15
+ funcs.each do |f|
16
+ next if f.name == prev_name
17
+ prev_name = f.name
18
+ %>
19
+ /* <%=f.name%> */
20
+ #if defined RUNTIME_API_CHECK
21
+ typedef <%=f.ret%> (*oci8_<%=f.name%>_func_t)(<%=f.args.collect {|arg| arg.dcl}.join(', ')%>);
22
+ static oci8_<%=f.name%>_func_t oci8_<%=f.name%>_func;
23
+ #define <%=f.name%> oci8_<%=f.name%>_func
24
+ #elif ORACLE_CLIENT_VERSION < <%=f.version_num%>
25
+ #define <%=f.name%>(<%=f.args.collect {|a| a.name}.join(', ')%>) (0)
26
+ #endif
27
+ <%
28
+ end # funcs.each
29
+
30
+ funcs.each do |f|
31
+ if f.remote
32
+ ######################################################################
33
+ ##
34
+ ## remote API with runtime-check - start
35
+ ##
36
+ ######################################################################
37
+ %>
38
+ /*
39
+ * <%=f.name%>_nb
40
+ */
41
+ typedef struct {
42
+ oci8_svcctx_t *svcctx;
43
+ <%
44
+ f.ret != 'void'
45
+ %> <%= f.ret %> rv;
46
+ <%
47
+ f.args.each do |a|
48
+ %> <%= a.dcl %>;
49
+ <% end
50
+ %>} oci8_<%=f.name%>_data_t;
51
+
52
+ #if defined RUNTIME_API_CHECK
53
+ int oci8_have_<%=f.name%>_nb;
54
+ #endif
55
+
56
+ #if defined RUNTIME_API_CHECK || ORACLE_CLIENT_VERSION >= <%=f.version_num%>
57
+ static VALUE oci8_<%=f.name%>_cb(void *user_data)
58
+ {
59
+ oci8_<%=f.name%>_data_t *data = (oci8_<%=f.name%>_data_t *)user_data;
60
+ <% if f.ret == 'void'
61
+ %> <%=f.name%>(<%= f.args.collect do |a| 'data->' + a.name; end.join(', ') %>);
62
+ <% else
63
+ %> data->rv = <%=f.name%>(<%= f.args.collect do |a| 'data->' + a.name; end.join(', ') %>);
64
+ <% end %>
65
+ <% if f.ret == 'sword'
66
+ %> BLOCKING_FUNCTION_EPILOGUE(data->svcctx);
67
+ return (VALUE)data->rv;
68
+ <% else
69
+ %> BLOCKING_FUNCTION_EPILOGUE(data->svcctx);
70
+ return (VALUE)0;
71
+ <% end %>
72
+ }
73
+ #else
74
+ #define oci8_<%=f.name%>_cb NULL
75
+ #endif
76
+
77
+ <%=f.ret%> oci8_<%=f.name%>_nb(oci8_svcctx_t *svcctx, <%=f.args.collect {|arg| arg.dcl}.join(', ')%>, const char *file, int line)
78
+ {
79
+ if (have_<%=f.name%>_nb) {
80
+ oci8_<%=f.name%>_data_t data;
81
+ data.svcctx = svcctx;
82
+ <% f.args.each do |a|
83
+ %> data.<%=a.name%> = <%=a.name%>;
84
+ <% end
85
+ %> oci8_blocking_region(svcctx, oci8_<%=f.name%>_cb, &data);
86
+ <% if f.ret != 'void'
87
+ %> return data.rv;
88
+ <% end
89
+ %> } else {
90
+ rb_raise(rb_eRuntimeError, "undefined OCI function %s is called", "<%=f.name%>_nb");
91
+ }
92
+ }
93
+ <%
94
+ ######################################################################
95
+ ##
96
+ ## remote API with runtime-check - end
97
+ ##
98
+ ######################################################################
99
+ else
100
+ ######################################################################
101
+ ##
102
+ ## local API with runtime-check - start
103
+ ##
104
+ ######################################################################
105
+ %>
106
+ /*
107
+ * <%=f.name%>
108
+ */
109
+ #if defined RUNTIME_API_CHECK
110
+ int oci8_have_<%=f.name%>;
111
+ #endif
112
+
113
+ <%=f.ret%> oci8_<%=f.name%>(<%=f.args.collect {|arg| arg.dcl}.join(', ')%>, const char *file, int line)
114
+ {
115
+ if (have_<%=f.name%>) {
116
+ <% if f.ret == 'void'
117
+ %> <%=f.name%>(<%=f.args.collect {|arg| arg.name}.join(', ')%>);
118
+ <% else
119
+ %> return <%=f.name%>(<%=f.args.collect {|arg| arg.name}.join(', ')%>);
120
+ <% end
121
+ %> } else {
122
+ <% if f.code_if_not_found %><%=f.code_if_not_found.split("\n").collect {|line| " " + line}.join("\n")%>
123
+ <% else
124
+ %> rb_raise(rb_eRuntimeError, "undefined OCI function %s is called", "<%=f.name%>");
125
+ <% end
126
+ %> }
127
+ }
128
+ <%
129
+ ######################################################################
130
+ ##
131
+ ## local API with runtime-check - end
132
+ ##
133
+ ######################################################################
134
+ end
135
+ end # funcs.each
136
+ ######################################################################
137
+ ##
138
+ ## RUNTIME_API_CHECK
139
+ ##
140
+ ######################################################################
141
+ current_version_num = funcs[0].version_num
142
+ current_version_str = funcs[0].version_str
143
+ have_vars = []
144
+ %>
145
+ #if defined RUNTIME_API_CHECK
146
+ int oracle_client_version;
147
+
148
+ void Init_oci8_apiwrap(void)
149
+ {
150
+ oracle_client_version = 0;
151
+ <%
152
+ funcs.each do |f|
153
+ if current_version_num != f.version_num
154
+ unless have_vars.empty?
155
+ %> /* pass Oracle <%=current_version_str%> API */
156
+ oracle_client_version = <%=current_version_num%>;
157
+ <% have_vars.each do |v|
158
+ %> <%=v%> = 1;
159
+ <% end
160
+ end
161
+ have_vars = []
162
+ current_version_num = f.version_num
163
+ current_version_str = f.version_str
164
+ %>
165
+ /*
166
+ * checking Oracle <%=f.version_str%> API
167
+ */
168
+ <%
169
+ end
170
+ have_vars << 'have_' + f.name + (f.remote ? '_nb' : '')
171
+ %> oci8_<%=f.name%>_func = (oci8_<%=f.name%>_func_t)oci8_find_symbol("<%=f.name%>");
172
+ if (oci8_<%=f.name%>_func == NULL)
173
+ return;
174
+ <%
175
+ end
176
+ %> /* pass Oracle <%=current_version_str%> API */
177
+ oracle_client_version = <%=current_version_num%>;
178
+ <% have_vars.each do |v|
179
+ %> <%=v%> = 1;
180
+ <% end
181
+ %>}
182
+ #endif /* RUNTIME_API_CHECK */
@@ -0,0 +1,61 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ <%= header_comment
3
+ # This file is processed by apiwrap.rb.
4
+ %>
5
+ #ifndef APIWRAP_H
6
+ #define APIWRAP_H 1
7
+ #include <oci8.h>
8
+
9
+ #if defined RUNTIME_API_CHECK
10
+ void Init_oci8_apiwrap(void);
11
+ extern int oracle_client_version;
12
+ #else
13
+ #define oracle_client_version ORACLE_CLIENT_VERSION
14
+ #endif
15
+ <%
16
+ funcs.each do |f|
17
+ if f.remote
18
+ %>
19
+ /*
20
+ * <%=f.name%>
21
+ * version: <%=f.version_str%>
22
+ * remote: true
23
+ */
24
+ <%=f.ret%> oci8_<%=f.name%>_nb(oci8_svcctx_t *svcctx, <%=f.args.collect {|arg| arg.dcl}.join(', ')%>, const char *file, int line);
25
+ #define <%=f.name%>_nb(svcctx, <%=f.args.collect do |a| a.name; end.join(', ')%>) \
26
+ oci8_<%=f.name%>_nb(svcctx, <%=f.args.collect do |a| a.name; end.join(', ')%>, __FILE__, __LINE__)
27
+ #if defined RUNTIME_API_CHECK
28
+ extern int oci8_have_<%=f.name%>_nb;
29
+ #define have_<%=f.name%>_nb oci8_have_<%=f.name%>_nb
30
+ #elif ORACLE_CLIENT_VERSION >= <%=f.version_num%>
31
+ #define have_<%=f.name%>_nb (1)
32
+ #else
33
+ #define have_<%=f.name%>_nb (0)
34
+ #endif
35
+ <%
36
+ else
37
+ %>
38
+ /*
39
+ * <%=f.name%>
40
+ * version: <%=f.version_str%>
41
+ * remote: false
42
+ */
43
+ <%=f.ret%> oci8_<%=f.name%>(<%=f.args.collect {|arg| arg.dcl}.join(', ')%>, const char *file, int line);
44
+ #ifndef API_WRAP_C
45
+ #undef <%=f.name%>
46
+ #define <%=f.name%>(<%=f.args.collect do |a| a.name; end.join(', ')%>) \
47
+ oci8_<%=f.name%>(<%=f.args.collect do |a| a.name; end.join(', ')%>, __FILE__, __LINE__)
48
+ #endif
49
+ #if defined RUNTIME_API_CHECK
50
+ extern int oci8_have_<%=f.name%>;
51
+ #define have_<%=f.name%> oci8_have_<%=f.name%>
52
+ #elif ORACLE_CLIENT_VERSION >= <%=f.version_num%>
53
+ #define have_<%=f.name%> (1)
54
+ #else
55
+ #define have_<%=f.name%> (0)
56
+ #endif
57
+ <%
58
+ end
59
+ end # funcs.each
60
+ %>
61
+ #endif /* APIWRAP_H */
@@ -0,0 +1,91 @@
1
+ require 'yaml'
2
+ require 'erb'
3
+
4
+ class ArgDef
5
+ attr_reader :dcl
6
+ attr_reader :name
7
+
8
+ def initialize(arg)
9
+ /(\w+)\s*$/ =~ arg
10
+ /\(\*(\w+)\)/ =~ arg if $1.nil?
11
+ @dcl = arg
12
+ @name = $1
13
+ end
14
+ end
15
+
16
+ class FuncDef
17
+ attr_reader :name
18
+ attr_reader :version
19
+ attr_reader :version_num
20
+ attr_reader :version_str
21
+ attr_reader :remote
22
+ attr_reader :args
23
+ attr_reader :ret
24
+ attr_reader :code_if_not_found
25
+
26
+ def initialize(key, val)
27
+ if key[-3..-1] == '_nb'
28
+ @name = key[0..-4]
29
+ @remote = true
30
+ else
31
+ @name = key
32
+ @remote = false
33
+ end
34
+ ver = val[:version]
35
+ ver_major = (ver / 100)
36
+ ver_minor = (ver / 10) % 10
37
+ ver_update = ver % 10
38
+ @version = ((ver_major << 24) | (ver_minor << 20) | (ver_update << 12))
39
+ case @version
40
+ when 0x08000000; @version_num = 'ORAVER_8_0'
41
+ when 0x08100000; @version_num = 'ORAVER_8_1'
42
+ when 0x09000000; @version_num = 'ORAVER_9_0'
43
+ when 0x09200000; @version_num = 'ORAVER_9_2'
44
+ when 0x0a100000; @version_num = 'ORAVER_10_1'
45
+ when 0x0a200000; @version_num = 'ORAVER_10_2'
46
+ when 0x0b100000; @version_num = 'ORAVER_11_1'
47
+ end
48
+ @version_str = "#{ver_major}.#{ver_minor}.#{ver_update}"
49
+ @ret = val[:ret] || 'sword'
50
+ @args = val[:args].collect do |arg|
51
+ ArgDef.new(arg)
52
+ end
53
+ @code_if_not_found = val[:code_if_not_found]
54
+ end
55
+ end
56
+
57
+ def create_apiwrap
58
+ funcs = []
59
+ YAML.load(open(File.dirname(__FILE__) + '/apiwrap.yml')).each do |key, val|
60
+ funcs << FuncDef.new(key, val)
61
+ end
62
+ funcs.sort! do |a, b|
63
+ if a.version == b.version
64
+ a.name <=> b.name
65
+ else
66
+ a.version <=> b.version
67
+ end
68
+ end
69
+
70
+ header_comment = <<EOS.chomp
71
+ /*
72
+ * This file was created by apiwrap.rb.
73
+ * Don't edit this file manually.
74
+ */
75
+ EOS
76
+ #'
77
+
78
+ erb = ERB.new(open(File.dirname(__FILE__) + '/apiwrap.h.tmpl').read)
79
+ open('apiwrap.h', 'w') do |fd|
80
+ fd.write(erb.result(binding))
81
+ end
82
+
83
+ erb = ERB.new(open(File.dirname(__FILE__) + '/apiwrap.c.tmpl').read)
84
+ open('apiwrap.c', 'w') do |fd|
85
+ fd.write(erb.result(binding))
86
+ end
87
+ end
88
+
89
+ if $0 == __FILE__
90
+ create_apiwrap
91
+ end
@@ -0,0 +1,1455 @@
1
+ #
2
+ # Oracle 8.0
3
+ #
4
+
5
+ # round trip: 0, 1, or 2
6
+ # use thie for 0 round trip
7
+ OCIAttrGet:
8
+ :version: 800
9
+ :args:
10
+ - CONST dvoid *trgthndlp
11
+ - ub4 trghndltyp
12
+ - dvoid *attributep
13
+ - ub4 *sizep
14
+ - ub4 attrtype
15
+ - OCIError *errhp
16
+
17
+ # use thie for 1 or 2 round trips
18
+ OCIAttrGet_nb:
19
+ :version: 800
20
+ :args:
21
+ - CONST dvoid *trgthndlp
22
+ - ub4 trghndltyp
23
+ - dvoid *attributep
24
+ - ub4 *sizep
25
+ - ub4 attrtype
26
+ - OCIError *errhp
27
+
28
+ OCIAttrSet:
29
+ :version: 800
30
+ :args:
31
+ - dvoid *trgthndlp
32
+ - ub4 trghndltyp
33
+ - dvoid *attributep
34
+ - ub4 size
35
+ - ub4 attrtype
36
+ - OCIError *errhp
37
+
38
+ # round trip: 0
39
+ OCIBindArrayOfStruct:
40
+ :version: 800
41
+ :args:
42
+ - OCIBind *bindp
43
+ - OCIError *errhp
44
+ - ub4 pvskip
45
+ - ub4 indskip
46
+ - ub4 alskip
47
+ - ub4 rcskip
48
+
49
+ # round trip: 0
50
+ OCIBindByName:
51
+ :version: 800
52
+ :args:
53
+ - OCIStmt *stmtp
54
+ - OCIBind **bindp
55
+ - OCIError *errhp
56
+ - CONST text *placeholder
57
+ - sb4 placeh_len
58
+ - dvoid *valuep
59
+ - sb4 value_sz
60
+ - ub2 dty
61
+ - dvoid *indp
62
+ - ub2 *alenp
63
+ - ub2 *rcodep
64
+ - ub4 maxarr_len
65
+ - ub4 *curelep
66
+ - ub4 mode
67
+
68
+ # round trip: 0
69
+ OCIBindByPos:
70
+ :version: 800
71
+ :args:
72
+ - OCIStmt *stmtp
73
+ - OCIBind **bindp
74
+ - OCIError *errhp
75
+ - ub4 position
76
+ - dvoid *valuep
77
+ - sb4 value_sz
78
+ - ub2 dty
79
+ - dvoid *indp
80
+ - ub2 *alenp
81
+ - ub2 *rcodep
82
+ - ub4 maxarr_len
83
+ - ub4 *curelep
84
+ - ub4 mode
85
+
86
+ # round trip: 0
87
+ OCIBindObject:
88
+ :version: 800
89
+ :args:
90
+ - OCIBind *bindp
91
+ - OCIError *errhp
92
+ - CONST OCIType *type
93
+ - dvoid **pgvpp
94
+ - ub4 *pvszsp
95
+ - dvoid **indpp
96
+ - ub4 *indszp
97
+
98
+ # round trip: 1 but don't add _nb.
99
+ OCIBreak:
100
+ :version: 800
101
+ :args:
102
+ - dvoid *hndlp
103
+ - OCIError *errhp
104
+
105
+ # round trip: 0
106
+ OCICollAppend:
107
+ :version: 800
108
+ :args:
109
+ - OCIEnv *env
110
+ - OCIError *err
111
+ - CONST dvoid *elem
112
+ - CONST dvoid *elemind
113
+ - OCIColl *coll
114
+
115
+ # round trip: 0
116
+ OCICollAssignElem:
117
+ :version: 800
118
+ :args:
119
+ - OCIEnv *env
120
+ - OCIError *err
121
+ - sb4 index
122
+ - CONST dvoid *elem
123
+ - CONST dvoid *elemind
124
+ - OCIColl *coll
125
+
126
+ # round trip: 0
127
+ OCICollGetElem:
128
+ :version: 800
129
+ :args:
130
+ - OCIEnv *env
131
+ - OCIError *err
132
+ - CONST OCIColl *coll
133
+ - sb4 index
134
+ - boolean *exists
135
+ - dvoid **elem
136
+ - dvoid **elemind
137
+
138
+ # round trip: 0
139
+ OCICollSize:
140
+ :version: 800
141
+ :args:
142
+ - OCIEnv *env
143
+ - OCIError *err
144
+ - CONST OCIColl *coll
145
+ - sb4 *size
146
+
147
+ # round trip: 0
148
+ OCICollTrim:
149
+ :version: 800
150
+ :args:
151
+ - OCIEnv *env
152
+ - OCIError *err
153
+ - sb4 trim_num
154
+ - OCIColl *coll
155
+
156
+ # round trip: 0
157
+ OCIDefineArrayOfStruct:
158
+ :version: 800
159
+ :args:
160
+ - OCIDefine *defnp
161
+ - OCIError *errhp
162
+ - ub4 pvskip
163
+ - ub4 indskip
164
+ - ub4 rlskip
165
+ - ub4 rcskip
166
+
167
+ # round trip: 0
168
+ OCIDefineByPos:
169
+ :version: 800
170
+ :args:
171
+ - OCIStmt *stmtp
172
+ - OCIDefine **defnp
173
+ - OCIError *errhp
174
+ - ub4 position
175
+ - dvoid *valuep
176
+ - sb4 value_sz
177
+ - ub2 dty
178
+ - dvoid *indp
179
+ - ub2 *rlenp
180
+ - ub2 *rcodep
181
+ - ub4 mode
182
+
183
+ # round trip: 0
184
+ OCIDefineObject:
185
+ :version: 800
186
+ :args:
187
+ - OCIDefine *defnp
188
+ - OCIError *errhp
189
+ - CONST OCIType *type
190
+ - dvoid **pgvpp
191
+ - ub4 *pvszsp
192
+ - dvoid **indpp
193
+ - ub4 *indszp
194
+
195
+ # round trip: 1
196
+ OCIDescribeAny_nb:
197
+ :version: 800
198
+ :args:
199
+ - OCISvcCtx *svchp
200
+ - OCIError *errhp
201
+ - dvoid *objptr
202
+ - ub4 objnm_len
203
+ - ub1 objptr_typ
204
+ - ub1 info_level
205
+ - ub1 objtyp
206
+ - OCIDescribe *dschp
207
+
208
+ OCIDescriptorAlloc:
209
+ :version: 800
210
+ :args:
211
+ - CONST dvoid *parenth
212
+ - dvoid **descpp
213
+ - ub4 type
214
+ - size_t xtramem_sz
215
+ - dvoid **usrmempp
216
+
217
+ OCIDescriptorFree:
218
+ :version: 800
219
+ :args:
220
+ - dvoid *descp
221
+ - ub4 type
222
+
223
+ OCIErrorGet:
224
+ :version: 800
225
+ :args:
226
+ - dvoid *hndlp
227
+ - ub4 recordno
228
+ - text *sqlstate
229
+ - sb4 *errcodep
230
+ - text *bufp
231
+ - ub4 bufsiz
232
+ - ub4 type
233
+
234
+ OCIHandleAlloc:
235
+ :version: 800
236
+ :args:
237
+ - CONST dvoid *parenth
238
+ - dvoid **hndlpp
239
+ - ub4 type
240
+ - size_t xtramem_sz
241
+ - dvoid **usrmempp
242
+
243
+ OCIHandleFree:
244
+ :version: 800
245
+ :args:
246
+ - dvoid *hndlp
247
+ - ub4 type
248
+
249
+ # round trip: 0
250
+ OCILobAssign:
251
+ :version: 800
252
+ :args:
253
+ - OCIEnv *envhp
254
+ - OCIError *errhp
255
+ - CONST OCILobLocator *src_locp
256
+ - OCILobLocator **dst_locpp
257
+
258
+ # round trip: 1
259
+ OCILobFileClose_nb:
260
+ :version: 800
261
+ :args:
262
+ - OCISvcCtx *svchp
263
+ - OCIError *errhp
264
+ - OCILobLocator *filep
265
+
266
+ # round trip: 1
267
+ OCILobFileCloseAll_nb:
268
+ :version: 800
269
+ :args:
270
+ - OCISvcCtx *svchp
271
+ - OCIError *errhp
272
+
273
+ # round trip: 1
274
+ OCILobFileExists_nb:
275
+ :version: 800
276
+ :args:
277
+ - OCISvcCtx *svchp
278
+ - OCIError *errhp
279
+ - OCILobLocator *filep
280
+ - boolean *flag
281
+
282
+ # round trip: 0
283
+ OCILobFileGetName:
284
+ :version: 800
285
+ :args:
286
+ - OCIEnv *envhp
287
+ - OCIError *errhp
288
+ - CONST OCILobLocator *filep
289
+ - text *dir_alias
290
+ - ub2 *d_length
291
+ - text *filename
292
+ - ub2 *f_length
293
+
294
+ # round trip: 1
295
+ OCILobFileOpen_nb:
296
+ :version: 800
297
+ :args:
298
+ - OCISvcCtx *svchp
299
+ - OCIError *errhp
300
+ - OCILobLocator *filep
301
+ - ub1 mode
302
+
303
+ # round trip: 0
304
+ OCILobFileSetName:
305
+ :version: 800
306
+ :args:
307
+ - OCIEnv *envhp
308
+ - OCIError *errhp
309
+ - OCILobLocator **filepp
310
+ - CONST text *dir_alias
311
+ - ub2 d_length
312
+ - CONST text *filename
313
+ - ub2 f_length
314
+
315
+ # round trip: 1
316
+ OCILobGetLength_nb:
317
+ :version: 800
318
+ :args:
319
+ - OCISvcCtx *svchp
320
+ - OCIError *errhp
321
+ - OCILobLocator *locp
322
+ - ub4 *lenp
323
+
324
+ # round trip: 0
325
+ OCILobLocatorIsInit:
326
+ :version: 800
327
+ :args:
328
+ - OCIEnv *envhp
329
+ - OCIError *errhp
330
+ - CONST OCILobLocator *locp
331
+ - boolean *is_initialized
332
+
333
+ # round trip: 0 or 1
334
+ OCILobRead_nb:
335
+ :version: 800
336
+ :args:
337
+ - OCISvcCtx *svchp
338
+ - OCIError *errhp
339
+ - OCILobLocator *locp
340
+ - ub4 *amtp
341
+ - ub4 offset
342
+ - dvoid *bufp
343
+ - ub4 bufl
344
+ - dvoid *ctxp
345
+ - OCICallbackLobRead cbfp
346
+ - ub2 csid
347
+ - ub1 csfrm
348
+
349
+ # round trip: 1
350
+ OCILobTrim_nb:
351
+ :version: 800
352
+ :args:
353
+ - OCISvcCtx *svchp
354
+ - OCIError *errhp
355
+ - OCILobLocator *locp
356
+ - ub4 newlen
357
+
358
+ # round trip: 0 or 1
359
+ OCILobWrite_nb:
360
+ :version: 800
361
+ :args:
362
+ - OCISvcCtx *svchp
363
+ - OCIError *errhp
364
+ - OCILobLocator *locp
365
+ - ub4 *amtp
366
+ - ub4 offset
367
+ - dvoid *bufp
368
+ - ub4 buflen
369
+ - ub1 piece
370
+ - dvoid *ctxp
371
+ - OCICallbackLobWrite cbfp
372
+ - ub2 csid
373
+ - ub1 csfrm
374
+
375
+ # round trip: 1
376
+ OCILogoff_nb:
377
+ :version: 800
378
+ :args:
379
+ - OCISvcCtx *svchp
380
+ - OCIError *errhp
381
+
382
+ # round trip: 1
383
+ OCILogon_nb:
384
+ :version: 800
385
+ :args:
386
+ - OCIEnv *envhp
387
+ - OCIError *errhp
388
+ - OCISvcCtx **svchp
389
+ - CONST text *username
390
+ - ub4 uname_len
391
+ - CONST text *password
392
+ - ub4 passwd_len
393
+ - CONST text *dbname
394
+ - ub4 dbname_len
395
+
396
+ # round trip: 0
397
+ OCINumberAbs:
398
+ :version: 800
399
+ :args:
400
+ - OCIError *err
401
+ - CONST OCINumber *number
402
+ - OCINumber *result
403
+
404
+ # round trip: 0
405
+ OCINumberAdd:
406
+ :version: 800
407
+ :args:
408
+ - OCIError *err
409
+ - CONST OCINumber *number1
410
+ - CONST OCINumber *number2
411
+ - OCINumber *result
412
+
413
+ # round trip: 0
414
+ OCINumberArcCos:
415
+ :version: 800
416
+ :args:
417
+ - OCIError *err
418
+ - CONST OCINumber *number
419
+ - OCINumber *result
420
+
421
+ # round trip: 0
422
+ OCINumberArcSin:
423
+ :version: 800
424
+ :args:
425
+ - OCIError *err
426
+ - CONST OCINumber *number
427
+ - OCINumber *result
428
+
429
+ # round trip: 0
430
+ OCINumberArcTan:
431
+ :version: 800
432
+ :args:
433
+ - OCIError *err
434
+ - CONST OCINumber *number
435
+ - OCINumber *result
436
+
437
+ # round trip: 0
438
+ OCINumberArcTan2:
439
+ :version: 800
440
+ :args:
441
+ - OCIError *err
442
+ - CONST OCINumber *number1
443
+ - CONST OCINumber *number2
444
+ - OCINumber *result
445
+
446
+ # round trip: 0
447
+ OCINumberAssign:
448
+ :version: 800
449
+ :args:
450
+ - OCIError *err
451
+ - CONST OCINumber *from
452
+ - OCINumber *to
453
+
454
+ # round trip: 0
455
+ OCINumberCeil:
456
+ :version: 800
457
+ :args:
458
+ - OCIError *err
459
+ - CONST OCINumber *number
460
+ - OCINumber *result
461
+
462
+ # round trip: 0
463
+ OCINumberCmp:
464
+ :version: 800
465
+ :args:
466
+ - OCIError *err
467
+ - CONST OCINumber *number1
468
+ - CONST OCINumber *number2
469
+ - sword *result
470
+
471
+ # round trip: 0
472
+ OCINumberCos:
473
+ :version: 800
474
+ :args:
475
+ - OCIError *err
476
+ - CONST OCINumber *number
477
+ - OCINumber *result
478
+
479
+ # round trip: 0
480
+ OCINumberDiv:
481
+ :version: 800
482
+ :args:
483
+ - OCIError *err
484
+ - CONST OCINumber *number1
485
+ - CONST OCINumber *number2
486
+ - OCINumber *result
487
+
488
+ # round trip: 0
489
+ OCINumberExp:
490
+ :version: 800
491
+ :args:
492
+ - OCIError *err
493
+ - CONST OCINumber *number
494
+ - OCINumber *result
495
+
496
+ # round trip: 0
497
+ OCINumberFloor:
498
+ :version: 800
499
+ :args:
500
+ - OCIError *err
501
+ - CONST OCINumber *number
502
+ - OCINumber *result
503
+
504
+ # round trip: 0
505
+ OCINumberFromInt:
506
+ :version: 800
507
+ :args:
508
+ - OCIError *err
509
+ - CONST dvoid *inum
510
+ - uword inum_length
511
+ - uword inum_s_flag
512
+ - OCINumber *number
513
+
514
+ # round trip: 0
515
+ OCINumberFromReal:
516
+ :version: 800
517
+ :args:
518
+ - OCIError *err
519
+ - CONST dvoid *rnum
520
+ - uword rnum_length
521
+ - OCINumber *number
522
+
523
+ # round trip: 0
524
+ OCINumberFromText:
525
+ :version: 800
526
+ :args:
527
+ - OCIError *err
528
+ - CONST text *str
529
+ - ub4 str_length
530
+ - CONST text *fmt
531
+ - ub4 fmt_length
532
+ - CONST text *nls_params
533
+ - ub4 nls_p_length
534
+ - OCINumber *number
535
+
536
+ # round trip: 0
537
+ OCINumberHypCos:
538
+ :version: 800
539
+ :args:
540
+ - OCIError *err
541
+ - CONST OCINumber *number
542
+ - OCINumber *result
543
+
544
+ # round trip: 0
545
+ OCINumberHypSin:
546
+ :version: 800
547
+ :args:
548
+ - OCIError *err
549
+ - CONST OCINumber *number
550
+ - OCINumber *result
551
+
552
+ # round trip: 0
553
+ OCINumberHypTan:
554
+ :version: 800
555
+ :args:
556
+ - OCIError *err
557
+ - CONST OCINumber *number
558
+ - OCINumber *result
559
+
560
+ # round trip: 0
561
+ OCINumberIntPower:
562
+ :version: 800
563
+ :args:
564
+ - OCIError *err
565
+ - CONST OCINumber *base
566
+ - CONST sword exp
567
+ - OCINumber *result
568
+
569
+ # round trip: 0
570
+ OCINumberIsZero:
571
+ :version: 800
572
+ :args:
573
+ - OCIError *err
574
+ - CONST OCINumber *number
575
+ - boolean *result
576
+
577
+ # round trip: 0
578
+ OCINumberLn:
579
+ :version: 800
580
+ :args:
581
+ - OCIError *err
582
+ - CONST OCINumber *number
583
+ - OCINumber *result
584
+
585
+ # round trip: 0
586
+ OCINumberLog:
587
+ :version: 800
588
+ :args:
589
+ - OCIError *err
590
+ - CONST OCINumber *base
591
+ - CONST OCINumber *number
592
+ - OCINumber *result
593
+
594
+ # round trip: 0
595
+ OCINumberMod:
596
+ :version: 800
597
+ :args:
598
+ - OCIError *err
599
+ - CONST OCINumber *number1
600
+ - CONST OCINumber *number2
601
+ - OCINumber *result
602
+
603
+ # round trip: 0
604
+ OCINumberMul:
605
+ :version: 800
606
+ :args:
607
+ - OCIError *err
608
+ - CONST OCINumber *number1
609
+ - CONST OCINumber *number2
610
+ - OCINumber *result
611
+
612
+ # round trip: 0
613
+ OCINumberNeg:
614
+ :version: 800
615
+ :args:
616
+ - OCIError *err
617
+ - CONST OCINumber *number
618
+ - OCINumber *result
619
+
620
+ # round trip: 0
621
+ OCINumberPower:
622
+ :version: 800
623
+ :args:
624
+ - OCIError *err
625
+ - CONST OCINumber *base
626
+ - CONST OCINumber *number
627
+ - OCINumber *result
628
+
629
+ # round trip: 0
630
+ OCINumberRound:
631
+ :version: 800
632
+ :args:
633
+ - OCIError *err
634
+ - CONST OCINumber *number
635
+ - sword decplace
636
+ - OCINumber *result
637
+
638
+ # round trip: 0
639
+ OCINumberSetZero:
640
+ :version: 800
641
+ :ret: void
642
+ :args:
643
+ - OCIError *err
644
+ - OCINumber *num
645
+
646
+ # round trip: 0
647
+ OCINumberSin:
648
+ :version: 800
649
+ :args:
650
+ - OCIError *err
651
+ - CONST OCINumber *number
652
+ - OCINumber *result
653
+
654
+ # round trip: 0
655
+ OCINumberSub:
656
+ :version: 800
657
+ :args:
658
+ - OCIError *err
659
+ - CONST OCINumber *number1
660
+ - CONST OCINumber *number2
661
+ - OCINumber *result
662
+
663
+ # round trip: 0
664
+ OCINumberSqrt:
665
+ :version: 800
666
+ :args:
667
+ - OCIError *err
668
+ - CONST OCINumber *number
669
+ - OCINumber *result
670
+
671
+ # round trip: 0
672
+ OCINumberTan:
673
+ :version: 800
674
+ :args:
675
+ - OCIError *err
676
+ - CONST OCINumber *number
677
+ - OCINumber *result
678
+
679
+ # round trip: 0
680
+ OCINumberToInt:
681
+ :version: 800
682
+ :args:
683
+ - OCIError *err
684
+ - CONST OCINumber *number
685
+ - uword rsl_length
686
+ - uword rsl_flag
687
+ - dvoid *rsl
688
+
689
+ # round trip: 0
690
+ OCINumberToReal:
691
+ :version: 800
692
+ :args:
693
+ - OCIError *err
694
+ - CONST OCINumber *number
695
+ - uword rsl_length
696
+ - dvoid *rsl
697
+
698
+ # round trip: 0
699
+ OCINumberToText:
700
+ :version: 800
701
+ :args:
702
+ - OCIError *err
703
+ - CONST OCINumber *number
704
+ - CONST text *fmt
705
+ - ub4 fmt_length
706
+ - CONST text *nls_params
707
+ - ub4 nls_p_length
708
+ - ub4 *buf_size
709
+ - text *buf
710
+
711
+ # round trip: 0
712
+ OCINumberTrunc:
713
+ :version: 800
714
+ :args:
715
+ - OCIError *err
716
+ - CONST OCINumber *number
717
+ - sword decplace
718
+ - OCINumber *resulty
719
+
720
+ # round trip: 0
721
+ OCIObjectFree:
722
+ :version: 800
723
+ :args:
724
+ - OCIEnv *env
725
+ - OCIError *err
726
+ - dvoid *instance
727
+ - ub2 flags
728
+
729
+ # round trip: 0
730
+ OCIObjectGetInd:
731
+ :version: 800
732
+ :args:
733
+ - OCIEnv *env
734
+ - OCIError *err
735
+ - dvoid *instance
736
+ - dvoid **null_struct
737
+
738
+ # round trip: 0
739
+ OCIObjectNew:
740
+ :version: 800
741
+ :args:
742
+ - OCIEnv *env
743
+ - OCIError *err
744
+ - CONST OCISvcCtx *svc
745
+ - OCITypeCode typecode
746
+ - OCIType *tdo
747
+ - dvoid *table
748
+ - OCIDuration duration
749
+ - boolean value
750
+ - dvoid **instance
751
+
752
+ # round trip: 0 or 1
753
+ OCIObjectPin_nb:
754
+ :version: 800
755
+ :args:
756
+ - OCIEnv *env
757
+ - OCIError *err
758
+ - OCIRef *object_ref
759
+ - OCIComplexObject *corhdl
760
+ - OCIPinOpt pin_option
761
+ - OCIDuration pin_duration
762
+ - OCILockOpt lock_option
763
+ - dvoid **object
764
+
765
+ # round trip: 0
766
+ OCIObjectUnpin:
767
+ :version: 800
768
+ :args:
769
+ - OCIEnv *env
770
+ - OCIError *err
771
+ - dvoid *object
772
+
773
+ # round trip: ???
774
+ OCIParamGet:
775
+ :version: 800
776
+ :args:
777
+ - CONST dvoid *hndlp
778
+ - ub4 htype
779
+ - OCIError *errhp
780
+ - dvoid **parmdpp
781
+ - ub4 pos
782
+
783
+ # round trip: 1
784
+ OCISessionBegin_nb:
785
+ :version: 800
786
+ :args:
787
+ - OCISvcCtx *svchp
788
+ - OCIError *errhp
789
+ - OCISession *usrhp
790
+ - ub4 credt
791
+ - ub4 mode
792
+
793
+ # round trip: 0
794
+ OCIRawAssignBytes:
795
+ :version: 800
796
+ :args:
797
+ - OCIEnv *env
798
+ - OCIError *err
799
+ - CONST ub1 *rhs
800
+ - ub4 rhs_len
801
+ - OCIRaw **lhs
802
+
803
+ # round trip: 0
804
+ OCIRawPtr:
805
+ :version: 800
806
+ :ret: ub1 *
807
+ :args:
808
+ - OCIEnv *env
809
+ - CONST OCIRaw *raw
810
+
811
+ # round trip: 0
812
+ OCIRawSize:
813
+ :version: 800
814
+ :ret: ub4
815
+ :args:
816
+ - OCIEnv *env
817
+ - CONST OCIRaw *raw
818
+
819
+ # round trip: 1
820
+ OCISessionEnd_nb:
821
+ :version: 800
822
+ :args:
823
+ - OCISvcCtx *svchp
824
+ - OCIError *errhp
825
+ - OCISession *usrhp
826
+ - ub4 mode
827
+
828
+ # round trip: 1
829
+ OCIServerAttach_nb:
830
+ :version: 800
831
+ :args:
832
+ - OCIServer *srvhp
833
+ - OCIError *errhp
834
+ - CONST text *dblink
835
+ - sb4 dblink_len
836
+ - ub4 mode
837
+
838
+ # round trip: 1
839
+ OCIServerDetach_nb:
840
+ :version: 800
841
+ :args:
842
+ - OCIServer *srvhp
843
+ - OCIError *errhp
844
+ - ub4 mode
845
+
846
+ # round trip: ?
847
+ OCIServerVersion:
848
+ :version: 800
849
+ :args:
850
+ - dvoid *hndlp
851
+ - OCIError *errhp
852
+ - OraText *bufp
853
+ - ub4 bufsz
854
+ - ub1 hndltype
855
+
856
+ # round trip: 1
857
+ OCIStmtExecute_nb:
858
+ :version: 800
859
+ :args:
860
+ - OCISvcCtx *svchp
861
+ - OCIStmt *stmtp
862
+ - OCIError *errhp
863
+ - ub4 iters
864
+ - ub4 rowoff
865
+ - CONST OCISnapshot *snap_in
866
+ - OCISnapshot *snap_out
867
+ - ub4 mode
868
+
869
+ # round trip: 0 if a next row is in pre-fetch buffer, otherwise 1
870
+ OCIStmtFetch_nb:
871
+ :version: 800
872
+ :args:
873
+ - OCIStmt *stmtp
874
+ - OCIError *errhp
875
+ - ub4 nrows
876
+ - ub2 orientation
877
+ - ub4 mode
878
+
879
+ OCIStmtGetPieceInfo:
880
+ :version: 800
881
+ :args:
882
+ - OCIStmt *stmtp
883
+ - OCIError *errhp
884
+ - dvoid **hndlpp
885
+ - ub4 *typep
886
+ - ub1 *in_outp
887
+ - ub4 *iterp
888
+ - ub4 *idxp
889
+ - ub1 *piecep
890
+
891
+ OCIStmtPrepare:
892
+ :version: 800
893
+ :args:
894
+ - OCIStmt *stmtp
895
+ - OCIError *errhp
896
+ - CONST text *stmt
897
+ - ub4 stmt_len
898
+ - ub4 language
899
+ - ub4 mode
900
+
901
+ OCIStmtSetPieceInfo:
902
+ :version: 800
903
+ :args:
904
+ - dvoid *hndlp
905
+ - ub4 type
906
+ - OCIError *errhp
907
+ - CONST dvoid *bufp
908
+ - ub4 *alenp
909
+ - ub1 piece
910
+ - CONST dvoid *indp
911
+ - ub2 *rcodep
912
+
913
+ # round trip: 0
914
+ OCIStringAssignText:
915
+ :version: 800
916
+ :args:
917
+ - OCIEnv *env
918
+ - OCIError *err
919
+ - CONST text *rhs
920
+ - ub4 rhs_len
921
+ - OCIString **lhs
922
+
923
+ # round trip: 0
924
+ OCIStringPtr:
925
+ :version: 800
926
+ :ret: text *
927
+ :args:
928
+ - OCIEnv *env
929
+ - CONST OCIString *vs
930
+
931
+ # round trip: 0
932
+ OCIStringSize:
933
+ :version: 800
934
+ :ret: ub4
935
+ :args:
936
+ - OCIEnv *env
937
+ - CONST OCIString *vs
938
+
939
+ # round trip: 1
940
+ OCITransCommit_nb:
941
+ :version: 800
942
+ :args:
943
+ - OCISvcCtx *svchp
944
+ - OCIError *errhp
945
+ - ub4 flags
946
+
947
+ # round trip: 1
948
+ OCITransRollback_nb:
949
+ :version: 800
950
+ :args:
951
+ - OCISvcCtx *svchp
952
+ - OCIError *errhp
953
+ - ub4 flags
954
+
955
+ # round trip: 0 ?
956
+ OCITypeTypeCode:
957
+ :version: 800
958
+ :ret: OCITypeCode
959
+ :args:
960
+ - OCIEnv *env
961
+ - OCIError *err
962
+ - CONST OCIType *tdo
963
+
964
+
965
+ #
966
+ # Oracle 8.1
967
+ #
968
+
969
+ # round trip: 0
970
+ OCIEnvCreate:
971
+ :version: 810
972
+ :args:
973
+ - OCIEnv **envp
974
+ - ub4 mode
975
+ - dvoid *ctxp
976
+ - dvoid *(*malocfp)(dvoid *ctxp, size_t size)
977
+ - dvoid *(*ralocfp)(dvoid *ctxp, dvoid *memptr, size_t newsize)
978
+ - void (*mfreefp)(dvoid *ctxp, dvoid *memptr)
979
+ - size_t xtramem_sz
980
+ - dvoid **usrmempp
981
+
982
+ # round trip: 1
983
+ OCILobClose_nb:
984
+ :version: 810
985
+ :args:
986
+ - OCISvcCtx *svchp
987
+ - OCIError *errhp
988
+ - OCILobLocator *locp
989
+
990
+ # round trip: 1
991
+ OCILobCreateTemporary_nb:
992
+ :version: 810
993
+ :args:
994
+ - OCISvcCtx *svchp
995
+ - OCIError *errhp
996
+ - OCILobLocator *locp
997
+ - ub2 csid
998
+ - ub1 csfrm
999
+ - ub1 lobtype
1000
+ - boolean cache
1001
+ - OCIDuration duration
1002
+
1003
+ # round trip: 1
1004
+ OCILobFreeTemporary:
1005
+ :version: 810
1006
+ :args:
1007
+ - OCISvcCtx *svchp
1008
+ - OCIError *errhp
1009
+ - OCILobLocator *locp
1010
+
1011
+ # round trip: 1
1012
+ OCILobGetChunkSize_nb:
1013
+ :version: 810
1014
+ :args:
1015
+ - OCISvcCtx *svchp
1016
+ - OCIError *errhp
1017
+ - OCILobLocator *locp
1018
+ - ub4 *chunksizep
1019
+
1020
+ # round trip: 0
1021
+ OCILobIsTemporary:
1022
+ :version: 810
1023
+ :args:
1024
+ - OCIEnv *envp
1025
+ - OCIError *errhp
1026
+ - OCILobLocator *locp
1027
+ - boolean *is_temporary
1028
+
1029
+ # round trip: 1 if either destination or source lob is a temporary, otherwise 0
1030
+ OCILobLocatorAssign_nb:
1031
+ :version: 810
1032
+ :args:
1033
+ - OCISvcCtx *svchp
1034
+ - OCIError *errhp
1035
+ - CONST OCILobLocator *src_locp
1036
+ - OCILobLocator **dst_locpp
1037
+
1038
+ # round trip 1
1039
+ OCILobOpen_nb:
1040
+ :version: 810
1041
+ :args:
1042
+ - OCISvcCtx *svchp
1043
+ - OCIError *errhp
1044
+ - OCILobLocator *locp
1045
+ - ub1 mode
1046
+
1047
+ OCIMessageOpen:
1048
+ :version: 810
1049
+ :args:
1050
+ - dvoid *envhp
1051
+ - OCIError *errhp
1052
+ - OCIMsg **msghp
1053
+ - CONST OraText *product
1054
+ - CONST OraText *facility
1055
+ - OCIDuration dur
1056
+
1057
+ OCIMessageGet:
1058
+ :version: 810
1059
+ :ret: OraText *
1060
+ :args:
1061
+ - OCIMsg *msgh
1062
+ - ub4 msgno
1063
+ - OraText *msgbuf
1064
+ - size_t buflen
1065
+
1066
+ # round trip: 0
1067
+ OCINumberIsInt:
1068
+ :version: 810
1069
+ :args:
1070
+ - OCIError *err
1071
+ - CONST OCINumber *number
1072
+ - boolean *result
1073
+ :code_if_not_found: |
1074
+ /* pseude code
1075
+ * work = trunc(number);
1076
+ * if (number == work) {
1077
+ * result = TRUE;
1078
+ * } else {
1079
+ * result = FALSE;
1080
+ * }
1081
+ */
1082
+ OCINumber work;
1083
+ sword rv;
1084
+ sword cmp;
1085
+ rv = oci8_OCINumberTrunc(err, number, 0, &work, file, line);
1086
+ if (rv != OCI_SUCCESS)
1087
+ return rv;
1088
+ rv = oci8_OCINumberCmp(err, number, &work, &cmp, file, line);
1089
+ if (rv != OCI_SUCCESS)
1090
+ return rv;
1091
+ *result = (cmp == 0) ? TRUE : FALSE;
1092
+ return OCI_SUCCESS;
1093
+
1094
+ # round trip: 0
1095
+ OCINumberPrec:
1096
+ :version: 810
1097
+ :args:
1098
+ - OCIError *err
1099
+ - CONST OCINumber *number
1100
+ - eword nDigs
1101
+ - OCINumber *result
1102
+
1103
+ # round trip: 0
1104
+ OCINumberSetPi:
1105
+ :version: 810
1106
+ :ret: void
1107
+ :args:
1108
+ - OCIError *err
1109
+ - OCINumber *num
1110
+ :code_if_not_found: |
1111
+ static const OCINumber pi = {
1112
+ {0x15, 0xc1, 0x04, 0x0f, 0x10, 0x5d, 0x42, 0x24, 0x5a, 0x50,
1113
+ 0x21, 0x27, 0x2f, 0x1b, 0x2c, 0x27, 0x21, 0x50, 0x33, 0x1d,
1114
+ 0x55, 0x15}
1115
+ };
1116
+ *num = pi;
1117
+
1118
+ # round trip: 0
1119
+ OCINumberShift:
1120
+ :version: 810
1121
+ :args:
1122
+ - OCIError *err
1123
+ - CONST OCINumber *number
1124
+ - CONST sword nDig
1125
+ - OCINumber *result
1126
+
1127
+ # round trip: 0
1128
+ OCINumberSign:
1129
+ :version: 810
1130
+ :args:
1131
+ - OCIError *err
1132
+ - CONST OCINumber *number
1133
+ - sword *result
1134
+ :code_if_not_found: |
1135
+ /* pseude code
1136
+ * number <=> 0
1137
+ */
1138
+ OCINumber zero;
1139
+ sword rv;
1140
+ sword cmp;
1141
+ OCINumberSetZero(err, &zero);
1142
+ rv = oci8_OCINumberCmp(err, number, &zero, &cmp, file, line);
1143
+ if (rv != OCI_SUCCESS)
1144
+ return rv;
1145
+ if (cmp > 0)
1146
+ *result = 1;
1147
+ else if (cmp < 0)
1148
+ *result = -1;
1149
+ else
1150
+ *result = 0;
1151
+ return OCI_SUCCESS;
1152
+
1153
+ # round trip: 0
1154
+ OCIReset:
1155
+ :version: 810
1156
+ :args:
1157
+ - dvoid *hndlp
1158
+ - OCIError *errhp
1159
+
1160
+ #
1161
+ # Oracle 9.0
1162
+ #
1163
+
1164
+ OCIConnectionPoolCreate:
1165
+ :version: 900
1166
+ :args:
1167
+ - OCIEnv *envhp
1168
+ - OCIError *errhp
1169
+ - OCICPool *poolhp
1170
+ - OraText **poolName
1171
+ - sb4 *poolNameLen
1172
+ - const OraText *dblink
1173
+ - sb4 dblinkLen
1174
+ - ub4 connMin
1175
+ - ub4 connMax
1176
+ - ub4 connIncr
1177
+ - const OraText *poolUserName
1178
+ - sb4 poolUserLen
1179
+ - const OraText *poolPassword
1180
+ - sb4 poolPassLen
1181
+ - ub4 mode
1182
+
1183
+ OCIConnectionPoolDestroy:
1184
+ :version: 900
1185
+ :args:
1186
+ - OCICPool *poolhp
1187
+ - OCIError *errhp
1188
+ - ub4 mode
1189
+
1190
+ # round trip: 0 (not docmented. I guess.)
1191
+ OCIDateTimeConstruct:
1192
+ :version: 900
1193
+ :args:
1194
+ - dvoid *hndl
1195
+ - OCIError *err
1196
+ - OCIDateTime *datetime
1197
+ - sb2 yr
1198
+ - ub1 mnth
1199
+ - ub1 dy
1200
+ - ub1 hr
1201
+ - ub1 mm
1202
+ - ub1 ss
1203
+ - ub4 fsec
1204
+ - OraText *timezone
1205
+ - size_t timezone_length
1206
+
1207
+ # round trip: 0 (not docmented. I guess.)
1208
+ OCIDateTimeGetDate:
1209
+ :version: 900
1210
+ :args:
1211
+ - dvoid *hndl
1212
+ - OCIError *err
1213
+ - CONST OCIDateTime *date
1214
+ - sb2 *yr
1215
+ - ub1 *mnth
1216
+ - ub1 *dy
1217
+
1218
+ # round trip: 0 (not docmented. I guess.)
1219
+ OCIDateTimeGetTime:
1220
+ :version: 900
1221
+ :args:
1222
+ - dvoid *hndl
1223
+ - OCIError *err
1224
+ - OCIDateTime *datetime
1225
+ - ub1 *hr
1226
+ - ub1 *mm
1227
+ - ub1 *ss
1228
+ - ub4 *fsec
1229
+
1230
+ # round trip: 0 (not docmented. I guess.)
1231
+ OCIIntervalFromText:
1232
+ :version: 900
1233
+ :args:
1234
+ - dvoid *hndl
1235
+ - OCIError *err
1236
+ - CONST OraText *inpstr
1237
+ - size_t str_len
1238
+ - OCIInterval *result
1239
+
1240
+ # round trip: 0 (not docmented. I guess.)
1241
+ OCIDateTimeGetTimeZoneOffset:
1242
+ :version: 900
1243
+ :args:
1244
+ - dvoid *hndl
1245
+ - OCIError *err
1246
+ - CONST OCIDateTime *datetime
1247
+ - sb1 *hr
1248
+ - sb1 *mm
1249
+
1250
+ # round trip: 0 (not docmented. I guess.)
1251
+ OCIIntervalGetDaySecond:
1252
+ :version: 900
1253
+ :args:
1254
+ - dvoid *hndl
1255
+ - OCIError *err
1256
+ - sb4 *dy
1257
+ - sb4 *hr
1258
+ - sb4 *mm
1259
+ - sb4 *ss
1260
+ - sb4 *fsec
1261
+ - CONST OCIInterval *result
1262
+
1263
+ # round trip: 0 (not docmented. I guess.)
1264
+ OCIIntervalGetYearMonth:
1265
+ :version: 900
1266
+ :args:
1267
+ - dvoid *hndl
1268
+ - OCIError *err
1269
+ - sb4 *yr
1270
+ - sb4 *mnth
1271
+ - CONST OCIInterval *result
1272
+
1273
+ # round trip: 0 (not docmented. I guess.)
1274
+ OCIIntervalSetDaySecond:
1275
+ :version: 900
1276
+ :args:
1277
+ - dvoid *hndl
1278
+ - OCIError *err
1279
+ - sb4 dy
1280
+ - sb4 hr
1281
+ - sb4 mm
1282
+ - sb4 ss
1283
+ - sb4 fsec
1284
+ - OCIInterval *result
1285
+
1286
+ # round trip: 0 (not docmented. I guess.)
1287
+ OCIIntervalSetYearMonth:
1288
+ :version: 900
1289
+ :args:
1290
+ - dvoid *hndl
1291
+ - OCIError *err
1292
+ - sb4 yr
1293
+ - sb4 mnth
1294
+ - OCIInterval *result
1295
+
1296
+ # round trip: 0 (not docmented. I guess.)
1297
+ OCIRowidToChar:
1298
+ :version: 900
1299
+ :args:
1300
+ - OCIRowid *rowidDesc
1301
+ - OraText *outbfp
1302
+ - ub2 *outbflp
1303
+ - OCIError *errhp
1304
+
1305
+ # An undocumented function from Oracle 9i to Oracle 10g.
1306
+ # This is documented in Oracle 11g.
1307
+ OCIServerRelease:
1308
+ :version: 900
1309
+ :args:
1310
+ - dvoid *hndlp
1311
+ - OCIError *errhp
1312
+ - OraText *bufp
1313
+ - ub4 bufsz
1314
+ - ub1 hndltype
1315
+ - ub4 *version
1316
+
1317
+ #
1318
+ # Oracle 9.2
1319
+ #
1320
+
1321
+ # round trip: 0 (not docmented. I guess.)
1322
+ OCINlsCharSetIdToName:
1323
+ :version: 920
1324
+ :args:
1325
+ - dvoid *envhp
1326
+ - oratext *buf
1327
+ - size_t buflen
1328
+ - ub2 id
1329
+
1330
+ OCINlsCharSetNameToId:
1331
+ :version: 920
1332
+ :ret: ub2
1333
+ :args:
1334
+ - dvoid *envhp
1335
+ - const oratext *name
1336
+
1337
+ #
1338
+ # Oracle 10.1
1339
+ #
1340
+
1341
+ # round trip: 1
1342
+ OCILobGetLength2_nb:
1343
+ :version: 1010
1344
+ :args:
1345
+ - OCISvcCtx *svchp
1346
+ - OCIError *errhp
1347
+ - OCILobLocator *locp
1348
+ - oraub8 *lenp
1349
+
1350
+ # round trip: 0 or 1
1351
+ OCILobRead2_nb:
1352
+ :version: 1010
1353
+ :args:
1354
+ - OCISvcCtx *svchp
1355
+ - OCIError *errhp
1356
+ - OCILobLocator *locp
1357
+ - oraub8 *byte_amtp
1358
+ - oraub8 *char_amtp
1359
+ - oraub8 offset
1360
+ - dvoid *bufp
1361
+ - oraub8 bufl
1362
+ - ub1 piece
1363
+ - dvoid *ctxp
1364
+ - OCICallbackLobRead2 cbfp
1365
+ - ub2 csid
1366
+ - ub1 csfrm
1367
+
1368
+ # round trip: 1
1369
+ OCILobTrim2_nb:
1370
+ :version: 1010
1371
+ :args:
1372
+ - OCISvcCtx *svchp
1373
+ - OCIError *errhp
1374
+ - OCILobLocator *locp
1375
+ - oraub8 newlen
1376
+
1377
+ # round trip: 0 or 1
1378
+ OCILobWrite2_nb:
1379
+ :version: 1010
1380
+ :args:
1381
+ - OCISvcCtx *svchp
1382
+ - OCIError *errhp
1383
+ - OCILobLocator *locp
1384
+ - oraub8 *byte_amtp
1385
+ - oraub8 *char_amtp
1386
+ - oraub8 offset
1387
+ - dvoid *bufp
1388
+ - oraub8 buflen
1389
+ - ub1 piece
1390
+ - dvoid *ctxp
1391
+ - OCICallbackLobWrite2 cbfp
1392
+ - ub2 csid
1393
+ - ub1 csfrm
1394
+
1395
+ #
1396
+ # Oracle 10.2
1397
+ #
1398
+
1399
+ # round trip: 0
1400
+ OCIClientVersion:
1401
+ :version: 1020
1402
+ :ret: void
1403
+ :args:
1404
+ - sword *major_version
1405
+ - sword *minor_version
1406
+ - sword *update_num
1407
+ - sword *patch_num
1408
+ - sword *port_update_num
1409
+
1410
+ # round trip: 1
1411
+ OCIDBStartup_nb:
1412
+ :version: 1020
1413
+ :args:
1414
+ - OCISvcCtx *svchp
1415
+ - OCIError *errhp
1416
+ - OCIAdmin *admhp
1417
+ - ub4 mode
1418
+ - ub4 flags
1419
+
1420
+ # round trip: 1
1421
+ OCIDBShutdown_nb:
1422
+ :version: 1020
1423
+ :args:
1424
+ - OCISvcCtx *svchp
1425
+ - OCIError *errhp
1426
+ - OCIAdmin *admhp
1427
+ - ub4 mode
1428
+
1429
+ # round trip: 1
1430
+ OCIPing_nb:
1431
+ :version: 1020
1432
+ :args:
1433
+ - OCISvcCtx *svchp
1434
+ - OCIError *errhp
1435
+ - ub4 mode
1436
+
1437
+ #
1438
+ # Oracle 11.1
1439
+ #
1440
+
1441
+ OCIArrayDescriptorAlloc:
1442
+ :version: 1110
1443
+ :args:
1444
+ - const void *parenth
1445
+ - void **descpp
1446
+ - const ub4 type
1447
+ - ub4 array_size
1448
+ - const size_t xtramem_sz
1449
+ - void **usrmempp
1450
+
1451
+ OCIArrayDescriptorFree:
1452
+ :version: 1110
1453
+ :args:
1454
+ - void **descp
1455
+ - const ub4 type