ruby-oci8 1.0.7 → 2.0.0

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