ruby-oci8 1.0.7 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
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