ruby-oci8-master 2.0.7

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