ruby-oci8 2.1.0 → 2.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.yardopts +13 -0
- data/ChangeLog +104 -0
- data/NEWS +337 -235
- data/README.md +38 -0
- data/VERSION +1 -1
- data/dist-files +7 -6
- data/docs/install-binary-package.md +40 -0
- data/docs/install-full-client.md +116 -0
- data/docs/install-instant-client.md +167 -0
- data/docs/platform-specific-issues.md +209 -0
- data/docs/report-installation-issue.md +50 -0
- data/ext/oci8/apiwrap.yml +37 -14
- data/ext/oci8/error.c +26 -11
- data/ext/oci8/extconf.rb +19 -3
- data/ext/oci8/lob.c +287 -0
- data/ext/oci8/oci8.c +15 -9
- data/ext/oci8/oci8.h +8 -0
- data/ext/oci8/oci8lib.c +7 -2
- data/ext/oci8/ocihandle.c +209 -99
- data/ext/oci8/ocinumber.c +430 -147
- data/ext/oci8/oradate.c +92 -75
- data/ext/oci8/stmt.c +30 -12
- data/ext/oci8/win32.c +22 -0
- data/lib/oci8/bindtype.rb +1 -0
- data/lib/oci8/connection_pool.rb +1 -0
- data/lib/oci8/encoding-init.rb +1 -0
- data/lib/oci8/object.rb +29 -4
- data/lib/oci8/oci8.rb +75 -17
- data/lib/oci8/ocihandle.rb +192 -12
- data/lib/oci8/oracle_version.rb +47 -41
- data/lib/oci8/properties.rb +19 -0
- data/pre-distclean.rb +2 -2
- data/ruby-oci8.gemspec +7 -3
- data/test/config.rb +1 -6
- data/test/test_datetime.rb +70 -32
- data/test/test_oci8.rb +8 -2
- metadata +35 -53
- data/README +0 -5
- data/doc/api.en.html +0 -527
- data/doc/api.en.rd +0 -554
- data/doc/api.ja.html +0 -525
- data/doc/api.ja.rd +0 -557
- data/doc/manual.css +0 -35
data/lib/oci8/bindtype.rb
CHANGED
data/lib/oci8/connection_pool.rb
CHANGED
data/lib/oci8/encoding-init.rb
CHANGED
data/lib/oci8/object.rb
CHANGED
@@ -5,11 +5,17 @@ require 'oci8/metadata.rb'
|
|
5
5
|
|
6
6
|
class OCI8
|
7
7
|
|
8
|
+
# Returns the type descriptor object which correspond to the given class.
|
9
|
+
#
|
10
|
+
# @param [class of an OCI8::Object::Base's subclass]
|
11
|
+
# @return [OCI8::TDO]
|
12
|
+
#
|
13
|
+
# @private
|
8
14
|
def get_tdo_by_class(klass)
|
9
15
|
@id_to_tdo ||= {}
|
10
16
|
@name_to_tdo ||= {}
|
11
17
|
tdo = @name_to_tdo[klass.typename]
|
12
|
-
return tdo if tdo
|
18
|
+
return tdo if tdo # found in the cache.
|
13
19
|
|
14
20
|
metadata = describe_any(klass.typename)
|
15
21
|
if metadata.is_a? OCI8::Metadata::Synonym
|
@@ -21,6 +27,12 @@ class OCI8
|
|
21
27
|
OCI8::TDO.new(self, metadata, klass)
|
22
28
|
end
|
23
29
|
|
30
|
+
# Returns the type descriptor object which correspond to the given metadata.
|
31
|
+
#
|
32
|
+
# @param [OCI8::Metadata::Base's subclass]
|
33
|
+
# @return [OCI8::TDO]
|
34
|
+
#
|
35
|
+
# @private
|
24
36
|
def get_tdo_by_metadata(metadata)
|
25
37
|
@id_to_tdo ||= {}
|
26
38
|
@name_to_tdo ||= {}
|
@@ -59,7 +71,10 @@ EOS
|
|
59
71
|
OCI8::TDO.new(self, metadata, klass)
|
60
72
|
end
|
61
73
|
|
62
|
-
class
|
74
|
+
# A helper class to bind arguments.
|
75
|
+
#
|
76
|
+
# @private
|
77
|
+
class BindArgumentHelper
|
63
78
|
attr_reader :arg_str
|
64
79
|
def initialize(*args)
|
65
80
|
if args.length == 1 and args[0].is_a? Hash
|
@@ -102,12 +117,14 @@ EOS
|
|
102
117
|
@@name_to_class = {}
|
103
118
|
@@default_connection = nil
|
104
119
|
|
120
|
+
# @private
|
105
121
|
def self.inherited(klass)
|
106
122
|
name = klass.to_s.gsub(/^.*::/, '').gsub(/([a-z\d])([A-Z])/,'\1_\2').upcase
|
107
123
|
@@class_to_name[klass] = name
|
108
124
|
@@name_to_class[name] = klass
|
109
125
|
end
|
110
126
|
|
127
|
+
# @private
|
111
128
|
def self.get_class_by_typename(name)
|
112
129
|
@@name_to_class[name]
|
113
130
|
end
|
@@ -125,6 +142,7 @@ EOS
|
|
125
142
|
@@name_to_class[name] = self
|
126
143
|
end
|
127
144
|
|
145
|
+
# @deprecated
|
128
146
|
def self.default_connection=(con)
|
129
147
|
@@default_connection = con
|
130
148
|
end
|
@@ -158,6 +176,8 @@ EOS
|
|
158
176
|
end
|
159
177
|
|
160
178
|
# class method
|
179
|
+
|
180
|
+
# @private
|
161
181
|
def self.method_missing(method_id, *args)
|
162
182
|
if args[0].is_a? OCI8
|
163
183
|
con = args.shift
|
@@ -204,6 +224,8 @@ EOS
|
|
204
224
|
end
|
205
225
|
|
206
226
|
# instance method
|
227
|
+
|
228
|
+
# @private
|
207
229
|
def method_missing(method_id, *args)
|
208
230
|
if @attributes.is_a? Array
|
209
231
|
return @attributes if method_id == :to_ary
|
@@ -283,13 +305,14 @@ EOS
|
|
283
305
|
end # OCI8::Object::Base
|
284
306
|
end # OCI8::Object
|
285
307
|
|
308
|
+
# @private
|
286
309
|
class TDO
|
287
310
|
# full-qualified object type name.
|
288
311
|
# e.g.
|
289
312
|
# MDSYS.SDO_GEOMETRY
|
290
313
|
attr_reader :typename
|
291
314
|
|
292
|
-
#
|
315
|
+
# a subclass of OCI8::Object::Base
|
293
316
|
attr_reader :ruby_class
|
294
317
|
|
295
318
|
attr_reader :val_size
|
@@ -443,7 +466,7 @@ EOS
|
|
443
466
|
when :date
|
444
467
|
[ATTR_OCIDATE, nil, SIZE_OF_OCIDATE, 2, ALIGNMENT_OF_OCIDATE,
|
445
468
|
Proc.new do |val| datetime_to_array(val, :date) end, # set_proc
|
446
|
-
Proc.new do |val| array_to_datetime(val) end, # get_proc
|
469
|
+
Proc.new do |val| array_to_datetime(val, :local) end, # get_proc
|
447
470
|
]
|
448
471
|
when :binary_double
|
449
472
|
[ATTR_BINARY_DOUBLE, nil, SIZE_OF_DOUBLE, 2, ALIGNMENT_OF_DOUBLE]
|
@@ -495,6 +518,7 @@ EOS
|
|
495
518
|
end
|
496
519
|
end
|
497
520
|
|
521
|
+
# @private
|
498
522
|
class NamedType
|
499
523
|
def to_value
|
500
524
|
return nil if self.null?
|
@@ -528,6 +552,7 @@ EOS
|
|
528
552
|
end
|
529
553
|
end
|
530
554
|
|
555
|
+
# @private
|
531
556
|
class NamedCollection
|
532
557
|
def to_value
|
533
558
|
attr = self.attributes
|
data/lib/oci8/oci8.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# oci8.rb -- implements OCI8 and OCI8::Cursor
|
2
2
|
#
|
3
|
-
# Copyright (C) 2002-
|
3
|
+
# Copyright (C) 2002-2012 KUBO Takehiro <kubo@jiubao.org>
|
4
4
|
#
|
5
5
|
# Original Copyright is:
|
6
6
|
# Oracle module for Ruby
|
@@ -118,17 +118,38 @@ class OCI8
|
|
118
118
|
raise "unknown privilege type #{mode}"
|
119
119
|
end
|
120
120
|
|
121
|
-
|
122
|
-
|
123
|
-
|
121
|
+
stmt_cache_size = OCI8.properties[:statement_cache_size]
|
122
|
+
|
123
|
+
if mode.nil? and cred.nil?
|
124
|
+
# logon by the OCI function OCILogon2().
|
125
|
+
logon2_mode = 0
|
126
|
+
if dbname.is_a? OCI8::ConnectionPool
|
127
|
+
@pool = dbname # to prevent GC from freeing the connection pool.
|
128
|
+
dbname = dbname.send(:pool_name)
|
129
|
+
logon2_mode |= 0x0200 # OCI_LOGON2_CPOOL
|
130
|
+
end
|
131
|
+
if stmt_cache_size
|
132
|
+
# enable statement caching
|
133
|
+
logon2_mode |= 0x0004 # OCI_LOGON2_STMTCACHE
|
134
|
+
end
|
135
|
+
|
136
|
+
logon2(username, password, dbname, logon2_mode)
|
137
|
+
|
138
|
+
if stmt_cache_size
|
139
|
+
# set statement cache size
|
140
|
+
attr_set_ub4(176, stmt_cache_size) # 176: OCI_ATTR_STMTCACHESIZE
|
141
|
+
end
|
124
142
|
else
|
125
143
|
# logon by the OCI function OCISessionBegin().
|
144
|
+
attach_mode = 0
|
126
145
|
if dbname.is_a? OCI8::ConnectionPool
|
127
146
|
@pool = dbname # to prevent GC from freeing the connection pool.
|
128
|
-
attach_mode = OCI_CPOOL
|
129
147
|
dbname = dbname.send(:pool_name)
|
130
|
-
|
131
|
-
|
148
|
+
attach_mode |= 0x0200 # OCI_CPOOL
|
149
|
+
end
|
150
|
+
if stmt_cache_size
|
151
|
+
# enable statement caching
|
152
|
+
attach_mode |= 0x0004 # OCI_STMT_CACHE
|
132
153
|
end
|
133
154
|
|
134
155
|
allocate_handles()
|
@@ -136,6 +157,11 @@ class OCI8
|
|
136
157
|
session_handle.send(:attr_set_string, OCI_ATTR_PASSWORD, password) if password
|
137
158
|
server_attach(dbname, attach_mode)
|
138
159
|
session_begin(cred ? cred : OCI_CRED_RDBMS, mode ? mode : OCI_DEFAULT)
|
160
|
+
|
161
|
+
if stmt_cache_size
|
162
|
+
# set statement cache size
|
163
|
+
attr_set_ub4(176, stmt_cache_size) # 176: OCI_ATTR_STMTCACHESIZE
|
164
|
+
end
|
139
165
|
end
|
140
166
|
|
141
167
|
@prefetch_rows = nil
|
@@ -664,6 +690,8 @@ class OCI8
|
|
664
690
|
end # OCI8
|
665
691
|
|
666
692
|
class OraDate
|
693
|
+
|
694
|
+
# Returns a Time object which denotes self.
|
667
695
|
def to_time
|
668
696
|
begin
|
669
697
|
Time.local(year, month, day, hour, minute, second)
|
@@ -673,31 +701,40 @@ class OraDate
|
|
673
701
|
end
|
674
702
|
end
|
675
703
|
|
704
|
+
# Returns a Date object which denotes self.
|
676
705
|
def to_date
|
677
706
|
Date.new(year, month, day)
|
678
707
|
end
|
679
708
|
|
680
709
|
if defined? DateTime # ruby 1.8.0 or upper
|
681
710
|
|
682
|
-
#
|
711
|
+
# timezone offset of the time the command started
|
712
|
+
# @private
|
683
713
|
@@tz_offset = Time.now.utc_offset.to_r/86400
|
684
714
|
|
715
|
+
# Returns a DateTime object which denotes self.
|
716
|
+
#
|
717
|
+
# Note that this is not daylight saving time aware.
|
718
|
+
# The Time zone offset is that of the time the command started.
|
685
719
|
def to_datetime
|
686
720
|
DateTime.new(year, month, day, hour, minute, second, @@tz_offset)
|
687
721
|
end
|
688
722
|
end
|
689
723
|
|
690
|
-
|
724
|
+
# @private
|
725
|
+
def yaml_initialize(type, val)
|
691
726
|
initialize(*val.split(/[ -\/:]+/).collect do |i| i.to_i end)
|
692
727
|
end
|
693
728
|
|
694
|
-
|
729
|
+
# @private
|
730
|
+
def to_yaml(opts = {})
|
695
731
|
YAML.quick_emit(object_id, opts) do |out|
|
696
732
|
out.scalar(taguri, self.to_s, :plain)
|
697
733
|
end
|
698
734
|
end
|
699
735
|
|
700
|
-
|
736
|
+
# @private
|
737
|
+
def to_json(options=nil)
|
701
738
|
to_datetime.to_json(options)
|
702
739
|
end
|
703
740
|
end
|
@@ -707,39 +744,60 @@ class OraNumber
|
|
707
744
|
if defined? Psych and YAML == Psych
|
708
745
|
|
709
746
|
yaml_tag '!ruby/object:OraNumber'
|
710
|
-
|
747
|
+
|
748
|
+
# @private
|
749
|
+
def encode_with coder
|
711
750
|
coder.scalar = self.to_s
|
712
751
|
end
|
713
752
|
|
714
|
-
|
753
|
+
# @private
|
754
|
+
def init_with coder
|
715
755
|
initialize(coder.scalar)
|
716
756
|
end
|
717
757
|
|
718
758
|
else
|
719
759
|
|
720
|
-
|
760
|
+
# @private
|
761
|
+
def yaml_initialize(type, val)
|
721
762
|
initialize(val)
|
722
763
|
end
|
723
764
|
|
724
|
-
|
765
|
+
# @private
|
766
|
+
def to_yaml(opts = {})
|
725
767
|
YAML.quick_emit(object_id, opts) do |out|
|
726
768
|
out.scalar(taguri, self.to_s, :plain)
|
727
769
|
end
|
728
770
|
end
|
729
771
|
end
|
730
772
|
|
731
|
-
|
773
|
+
# @private
|
774
|
+
def to_json(options=nil)
|
732
775
|
to_s
|
733
776
|
end
|
734
777
|
end
|
735
778
|
|
736
779
|
class Numeric
|
780
|
+
# Converts +self+ to {OraNumber}.
|
737
781
|
def to_onum
|
738
782
|
OraNumber.new(self)
|
739
783
|
end
|
740
784
|
end
|
741
785
|
|
742
|
-
class String
|
786
|
+
class String # :nodoc:
|
787
|
+
|
788
|
+
# Converts +self+ to {OraNumber}.
|
789
|
+
# Optional <i>fmt</i> and <i>nlsparam</i> is used as
|
790
|
+
# {http://docs.oracle.com/cd/E11882_01/server.112/e17118/functions211.htm Oracle SQL function TO_NUMBER}
|
791
|
+
# does.
|
792
|
+
#
|
793
|
+
# @example
|
794
|
+
# '123456.789'.to_onum # => #<OraNumber:123456.789>
|
795
|
+
# '123,456.789'.to_onum('999,999,999.999') # => #<OraNumber:123456.789>
|
796
|
+
# '123.456,789'.to_onum('999G999G999D999', "NLS_NUMERIC_CHARACTERS = ',.'") # => #<OraNumber:123456.789>
|
797
|
+
#
|
798
|
+
# @param [String] fmt
|
799
|
+
# @param [String] nlsparam
|
800
|
+
# @return [OraNumber]
|
743
801
|
def to_onum(format = nil, nls_params = nil)
|
744
802
|
OraNumber.new(self, format, nls_params)
|
745
803
|
end
|
data/lib/oci8/ocihandle.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
|
-
#--
|
2
1
|
# ocihandle.rb -- Constants in OCIHandle.
|
3
2
|
#
|
4
|
-
# Copyright (C) 2010 KUBO Takehiro <kubo@jiubao.org>
|
5
|
-
#++
|
3
|
+
# Copyright (C) 2010-2012 KUBO Takehiro <kubo@jiubao.org>
|
6
4
|
|
5
|
+
# The abstract base class to implement common behavior of OCI handle data types and OCI descriptor data types.
|
6
|
+
#
|
7
7
|
class OCIHandle
|
8
8
|
|
9
9
|
#################################
|
@@ -13,261 +13,393 @@ class OCIHandle
|
|
13
13
|
#################################
|
14
14
|
|
15
15
|
# maximum size of the data
|
16
|
+
# @private
|
16
17
|
OCI_ATTR_DATA_SIZE = 1
|
17
18
|
|
18
19
|
# the SQL type of the column/argument
|
20
|
+
# @private
|
19
21
|
OCI_ATTR_DATA_TYPE = 2
|
20
22
|
# the name of the column/argument
|
23
|
+
# @private
|
21
24
|
OCI_ATTR_NAME = 4
|
22
25
|
# precision if number type
|
26
|
+
# @private
|
23
27
|
OCI_ATTR_PRECISION = 5
|
24
28
|
# scale if number type
|
29
|
+
# @private
|
25
30
|
OCI_ATTR_SCALE = 6
|
26
31
|
# is it null ?
|
32
|
+
# @private
|
27
33
|
OCI_ATTR_IS_NULL = 7
|
28
34
|
# name of the named data type or a package name
|
35
|
+
# @private
|
29
36
|
OCI_ATTR_TYPE_NAME = 8
|
30
37
|
# the schema name
|
38
|
+
# @private
|
31
39
|
OCI_ATTR_SCHEMA_NAME = 9
|
32
40
|
# type name if package private type
|
41
|
+
# @private
|
33
42
|
OCI_ATTR_SUB_NAME = 10
|
34
43
|
# relative position
|
44
|
+
# @private
|
35
45
|
OCI_ATTR_POSITION = 11
|
36
46
|
# packed decimal scale
|
47
|
+
# @private
|
37
48
|
OCI_ATTR_PDSCL = 16
|
38
49
|
# fs prec for datetime data types
|
50
|
+
# @private
|
39
51
|
OCI_ATTR_FSPRECISION = OCI_ATTR_PDSCL
|
40
52
|
# packed decimal format
|
53
|
+
# @private
|
41
54
|
OCI_ATTR_PDPRC = 17
|
42
55
|
# fs prec for datetime data types
|
56
|
+
# @private
|
43
57
|
OCI_ATTR_LFPRECISION = OCI_ATTR_PDPRC
|
44
58
|
# username attribute
|
59
|
+
# @private
|
45
60
|
OCI_ATTR_USERNAME = 22
|
46
61
|
# password attribute
|
62
|
+
# @private
|
47
63
|
OCI_ATTR_PASSWORD = 23
|
48
64
|
# Character Set ID
|
65
|
+
# @private
|
49
66
|
OCI_ATTR_CHARSET_ID = 31
|
50
67
|
# Character Set Form
|
68
|
+
# @private
|
51
69
|
OCI_ATTR_CHARSET_FORM = 32
|
52
70
|
# number of columns
|
71
|
+
# @private
|
53
72
|
OCI_ATTR_NUM_COLS = 102
|
54
73
|
# parameter of the column list
|
74
|
+
# @private
|
55
75
|
OCI_ATTR_LIST_COLUMNS = 103
|
56
76
|
# DBA of the segment header
|
77
|
+
# @private
|
57
78
|
OCI_ATTR_RDBA = 104
|
58
79
|
# whether the table is clustered
|
80
|
+
# @private
|
59
81
|
OCI_ATTR_CLUSTERED = 105
|
60
82
|
# whether the table is partitioned
|
83
|
+
# @private
|
61
84
|
OCI_ATTR_PARTITIONED = 106
|
62
85
|
# whether the table is index only
|
86
|
+
# @private
|
63
87
|
OCI_ATTR_INDEX_ONLY = 107
|
64
88
|
# parameter of the argument list
|
89
|
+
# @private
|
65
90
|
OCI_ATTR_LIST_ARGUMENTS = 108
|
66
91
|
# parameter of the subprogram list
|
92
|
+
# @private
|
67
93
|
OCI_ATTR_LIST_SUBPROGRAMS = 109
|
68
94
|
# REF to the type descriptor
|
95
|
+
# @private
|
69
96
|
OCI_ATTR_REF_TDO = 110
|
70
97
|
# the database link name
|
98
|
+
# @private
|
71
99
|
OCI_ATTR_LINK = 111
|
72
100
|
# minimum value
|
101
|
+
# @private
|
73
102
|
OCI_ATTR_MIN = 112
|
74
103
|
# maximum value
|
104
|
+
# @private
|
75
105
|
OCI_ATTR_MAX = 113
|
76
106
|
# increment value
|
107
|
+
# @private
|
77
108
|
OCI_ATTR_INCR = 114
|
78
109
|
# number of sequence numbers cached
|
110
|
+
# @private
|
79
111
|
OCI_ATTR_CACHE = 115
|
80
112
|
# whether the sequence is ordered
|
113
|
+
# @private
|
81
114
|
OCI_ATTR_ORDER = 116
|
82
115
|
# high-water mark
|
116
|
+
# @private
|
83
117
|
OCI_ATTR_HW_MARK = 117
|
84
118
|
# type's schema name
|
119
|
+
# @private
|
85
120
|
OCI_ATTR_TYPE_SCHEMA = 118
|
86
121
|
# timestamp of the object
|
122
|
+
# @private
|
87
123
|
OCI_ATTR_TIMESTAMP = 119
|
88
124
|
# number of parameters
|
125
|
+
# @private
|
89
126
|
OCI_ATTR_NUM_PARAMS = 121
|
90
127
|
# object id for a table or view
|
128
|
+
# @private
|
91
129
|
OCI_ATTR_OBJID = 122
|
92
130
|
# overload ID for funcs and procs
|
131
|
+
# @private
|
93
132
|
OCI_ATTR_OVERLOAD_ID = 125
|
94
133
|
# table name space
|
134
|
+
# @private
|
95
135
|
OCI_ATTR_TABLESPACE = 126
|
96
136
|
# list type
|
137
|
+
# @private
|
97
138
|
OCI_ATTR_LTYPE = 128
|
98
139
|
# whether table is temporary
|
140
|
+
# @private
|
99
141
|
OCI_ATTR_IS_TEMPORARY = 130
|
100
142
|
# whether table is typed
|
143
|
+
# @private
|
101
144
|
OCI_ATTR_IS_TYPED = 131
|
102
145
|
# duration of temporary table
|
146
|
+
# @private
|
103
147
|
OCI_ATTR_DURATION = 132
|
104
148
|
# is invoker rights
|
149
|
+
# @private
|
105
150
|
OCI_ATTR_IS_INVOKER_RIGHTS = 133
|
106
151
|
# top level schema obj name
|
152
|
+
# @private
|
107
153
|
OCI_ATTR_OBJ_NAME = 134
|
108
154
|
# schema name
|
155
|
+
# @private
|
109
156
|
OCI_ATTR_OBJ_SCHEMA = 135
|
110
157
|
# top level schema object id
|
158
|
+
# @private
|
111
159
|
OCI_ATTR_OBJ_ID = 136
|
112
160
|
|
161
|
+
# @private
|
113
162
|
OCI_ATTR_CONN_NOWAIT = 178
|
163
|
+
# @private
|
114
164
|
OCI_ATTR_CONN_BUSY_COUNT = 179
|
165
|
+
# @private
|
115
166
|
OCI_ATTR_CONN_OPEN_COUNT = 180
|
167
|
+
# @private
|
116
168
|
OCI_ATTR_CONN_TIMEOUT = 181
|
169
|
+
# @private
|
117
170
|
OCI_ATTR_CONN_MIN = 183
|
171
|
+
# @private
|
118
172
|
OCI_ATTR_CONN_MAX = 184
|
173
|
+
# @private
|
119
174
|
OCI_ATTR_CONN_INCR = 185
|
120
175
|
|
121
176
|
# is this position overloaded
|
177
|
+
# @private
|
122
178
|
OCI_ATTR_OVERLOAD = 210
|
123
179
|
# level for structured types
|
180
|
+
# @private
|
124
181
|
OCI_ATTR_LEVEL = 211
|
125
182
|
# has a default value
|
183
|
+
# @private
|
126
184
|
OCI_ATTR_HAS_DEFAULT = 212
|
127
185
|
# in, out inout
|
186
|
+
# @private
|
128
187
|
OCI_ATTR_IOMODE = 213
|
129
188
|
# returns a radix
|
189
|
+
# @private
|
130
190
|
OCI_ATTR_RADIX = 214
|
131
191
|
# total number of arguments
|
192
|
+
# @private
|
132
193
|
OCI_ATTR_NUM_ARGS = 215
|
133
194
|
# object or collection
|
195
|
+
# @private
|
134
196
|
OCI_ATTR_TYPECODE = 216
|
135
197
|
# varray or nested table
|
198
|
+
# @private
|
136
199
|
OCI_ATTR_COLLECTION_TYPECODE = 217
|
137
200
|
# user assigned version
|
201
|
+
# @private
|
138
202
|
OCI_ATTR_VERSION = 218
|
139
203
|
# is this an incomplete type
|
204
|
+
# @private
|
140
205
|
OCI_ATTR_IS_INCOMPLETE_TYPE = 219
|
141
206
|
# a system type
|
207
|
+
# @private
|
142
208
|
OCI_ATTR_IS_SYSTEM_TYPE = 220
|
143
209
|
# a predefined type
|
210
|
+
# @private
|
144
211
|
OCI_ATTR_IS_PREDEFINED_TYPE = 221
|
145
212
|
# a transient type
|
213
|
+
# @private
|
146
214
|
OCI_ATTR_IS_TRANSIENT_TYPE = 222
|
147
215
|
# system generated type
|
216
|
+
# @private
|
148
217
|
OCI_ATTR_IS_SYSTEM_GENERATED_TYPE = 223
|
149
218
|
# contains nested table attr
|
219
|
+
# @private
|
150
220
|
OCI_ATTR_HAS_NESTED_TABLE = 224
|
151
221
|
# has a lob attribute
|
222
|
+
# @private
|
152
223
|
OCI_ATTR_HAS_LOB = 225
|
153
224
|
# has a file attribute
|
225
|
+
# @private
|
154
226
|
OCI_ATTR_HAS_FILE = 226
|
155
227
|
# has a collection attribute
|
228
|
+
# @private
|
156
229
|
OCI_ATTR_COLLECTION_ELEMENT = 227
|
157
230
|
# number of attribute types
|
231
|
+
# @private
|
158
232
|
OCI_ATTR_NUM_TYPE_ATTRS = 228
|
159
233
|
# list of type attributes
|
234
|
+
# @private
|
160
235
|
OCI_ATTR_LIST_TYPE_ATTRS = 229
|
161
236
|
# number of type methods
|
237
|
+
# @private
|
162
238
|
OCI_ATTR_NUM_TYPE_METHODS = 230
|
163
239
|
# list of type methods
|
240
|
+
# @private
|
164
241
|
OCI_ATTR_LIST_TYPE_METHODS = 231
|
165
242
|
# map method of type
|
243
|
+
# @private
|
166
244
|
OCI_ATTR_MAP_METHOD = 232
|
167
245
|
# order method of type
|
246
|
+
# @private
|
168
247
|
OCI_ATTR_ORDER_METHOD = 233
|
169
248
|
# number of elements
|
249
|
+
# @private
|
170
250
|
OCI_ATTR_NUM_ELEMS = 234
|
171
251
|
# encapsulation level
|
252
|
+
# @private
|
172
253
|
OCI_ATTR_ENCAPSULATION = 235
|
173
254
|
# method selfish
|
255
|
+
# @private
|
174
256
|
OCI_ATTR_IS_SELFISH = 236
|
175
257
|
# virtual
|
258
|
+
# @private
|
176
259
|
OCI_ATTR_IS_VIRTUAL = 237
|
177
260
|
# inline
|
261
|
+
# @private
|
178
262
|
OCI_ATTR_IS_INLINE = 238
|
179
263
|
# constant
|
264
|
+
# @private
|
180
265
|
OCI_ATTR_IS_CONSTANT = 239
|
181
266
|
# has result
|
267
|
+
# @private
|
182
268
|
OCI_ATTR_HAS_RESULT = 240
|
183
269
|
# constructor
|
270
|
+
# @private
|
184
271
|
OCI_ATTR_IS_CONSTRUCTOR = 241
|
185
272
|
# destructor
|
273
|
+
# @private
|
186
274
|
OCI_ATTR_IS_DESTRUCTOR = 242
|
187
275
|
# operator
|
276
|
+
# @private
|
188
277
|
OCI_ATTR_IS_OPERATOR = 243
|
189
278
|
# a map method
|
279
|
+
# @private
|
190
280
|
OCI_ATTR_IS_MAP = 244
|
191
281
|
# order method
|
282
|
+
# @private
|
192
283
|
OCI_ATTR_IS_ORDER = 245
|
193
284
|
# read no data state method
|
285
|
+
# @private
|
194
286
|
OCI_ATTR_IS_RNDS = 246
|
195
287
|
# read no process state
|
288
|
+
# @private
|
196
289
|
OCI_ATTR_IS_RNPS = 247
|
197
290
|
# write no data state method
|
291
|
+
# @private
|
198
292
|
OCI_ATTR_IS_WNDS = 248
|
199
293
|
# write no process state
|
294
|
+
# @private
|
200
295
|
OCI_ATTR_IS_WNPS = 249
|
296
|
+
# @private
|
201
297
|
OCI_ATTR_IS_SUBTYPE = 258
|
298
|
+
# @private
|
202
299
|
OCI_ATTR_SUPERTYPE_SCHEMA_NAME = 259
|
300
|
+
# @private
|
203
301
|
OCI_ATTR_SUPERTYPE_NAME = 260
|
204
302
|
# list of objects in schema
|
303
|
+
# @private
|
205
304
|
OCI_ATTR_LIST_OBJECTS = 261
|
206
305
|
# char set id
|
306
|
+
# @private
|
207
307
|
OCI_ATTR_NCHARSET_ID = 262
|
208
308
|
# list of schemas
|
309
|
+
# @private
|
209
310
|
OCI_ATTR_LIST_SCHEMAS = 263
|
210
311
|
# max procedure length
|
312
|
+
# @private
|
211
313
|
OCI_ATTR_MAX_PROC_LEN = 264
|
212
314
|
# max column name length
|
315
|
+
# @private
|
213
316
|
OCI_ATTR_MAX_COLUMN_LEN = 265
|
214
317
|
# cursor commit behavior
|
318
|
+
# @private
|
215
319
|
OCI_ATTR_CURSOR_COMMIT_BEHAVIOR = 266
|
216
320
|
# catalog namelength
|
321
|
+
# @private
|
217
322
|
OCI_ATTR_MAX_CATALOG_NAMELEN = 267
|
218
323
|
# catalog location
|
324
|
+
# @private
|
219
325
|
OCI_ATTR_CATALOG_LOCATION = 268
|
220
326
|
# savepoint support
|
327
|
+
# @private
|
221
328
|
OCI_ATTR_SAVEPOINT_SUPPORT = 269
|
222
329
|
# nowait support
|
330
|
+
# @private
|
223
331
|
OCI_ATTR_NOWAIT_SUPPORT = 270
|
224
332
|
# autocommit DDL
|
333
|
+
# @private
|
225
334
|
OCI_ATTR_AUTOCOMMIT_DDL = 271
|
226
335
|
# locking mode
|
336
|
+
# @private
|
227
337
|
OCI_ATTR_LOCKING_MODE = 272
|
228
338
|
# value of client id to set
|
339
|
+
# @private
|
229
340
|
OCI_ATTR_CLIENT_IDENTIFIER = 278
|
230
341
|
# is final type ?
|
342
|
+
# @private
|
231
343
|
OCI_ATTR_IS_FINAL_TYPE = 279
|
232
344
|
# is instantiable type ?
|
345
|
+
# @private
|
233
346
|
OCI_ATTR_IS_INSTANTIABLE_TYPE = 280
|
234
347
|
# is final method ?
|
348
|
+
# @private
|
235
349
|
OCI_ATTR_IS_FINAL_METHOD = 281
|
236
350
|
# is instantiable method ?
|
351
|
+
# @private
|
237
352
|
OCI_ATTR_IS_INSTANTIABLE_METHOD = 282
|
238
353
|
# is overriding method ?
|
354
|
+
# @private
|
239
355
|
OCI_ATTR_IS_OVERRIDING_METHOD = 283
|
240
356
|
# Describe the base object
|
357
|
+
# @private
|
241
358
|
OCI_ATTR_DESC_SYNBASE = 284
|
242
359
|
# char length semantics
|
360
|
+
# @private
|
243
361
|
OCI_ATTR_CHAR_USED = 285
|
244
362
|
# char length
|
363
|
+
# @private
|
245
364
|
OCI_ATTR_CHAR_SIZE = 286
|
246
365
|
# rule condition
|
366
|
+
# @private
|
247
367
|
OCI_ATTR_CONDITION = 342
|
248
368
|
# comment
|
369
|
+
# @private
|
249
370
|
OCI_ATTR_COMMENT = 343
|
250
371
|
# Anydata value
|
372
|
+
# @private
|
251
373
|
OCI_ATTR_VALUE = 344
|
252
374
|
# eval context owner
|
375
|
+
# @private
|
253
376
|
OCI_ATTR_EVAL_CONTEXT_OWNER = 345
|
254
377
|
# eval context name
|
378
|
+
# @private
|
255
379
|
OCI_ATTR_EVAL_CONTEXT_NAME = 346
|
256
380
|
# eval function name
|
381
|
+
# @private
|
257
382
|
OCI_ATTR_EVALUATION_FUNCTION = 347
|
258
383
|
# variable type
|
384
|
+
# @private
|
259
385
|
OCI_ATTR_VAR_TYPE = 348
|
260
386
|
# variable value function
|
387
|
+
# @private
|
261
388
|
OCI_ATTR_VAR_VALUE_FUNCTION = 349
|
262
389
|
# variable method function
|
390
|
+
# @private
|
263
391
|
OCI_ATTR_VAR_METHOD_FUNCTION = 350
|
264
392
|
# action context
|
393
|
+
# @private
|
265
394
|
OCI_ATTR_ACTION_CONTEXT = 351
|
266
395
|
# list of table aliases
|
396
|
+
# @private
|
267
397
|
OCI_ATTR_LIST_TABLE_ALIASES = 352
|
268
398
|
# list of variable types
|
399
|
+
# @private
|
269
400
|
OCI_ATTR_LIST_VARIABLE_TYPES = 353
|
270
401
|
# table name
|
402
|
+
# @private
|
271
403
|
OCI_ATTR_TABLE_NAME = 356
|
272
404
|
|
273
405
|
#################################
|
@@ -277,6 +409,7 @@ class OCIHandle
|
|
277
409
|
#################################
|
278
410
|
|
279
411
|
# the default value for parameters and attributes
|
412
|
+
# @private
|
280
413
|
OCI_DEFAULT = 0
|
281
414
|
|
282
415
|
#################################
|
@@ -286,8 +419,10 @@ class OCIHandle
|
|
286
419
|
#################################
|
287
420
|
|
288
421
|
# database username/password credentials
|
422
|
+
# @private
|
289
423
|
OCI_CRED_RDBMS = 1
|
290
424
|
# externally provided credentials
|
425
|
+
# @private
|
291
426
|
OCI_CRED_EXT = 2
|
292
427
|
|
293
428
|
#################################
|
@@ -297,21 +432,15 @@ class OCIHandle
|
|
297
432
|
#################################
|
298
433
|
|
299
434
|
# for SYSDBA authorization
|
435
|
+
# @private
|
300
436
|
OCI_SYSDBA = 0x0002
|
301
437
|
# for SYSOPER authorization
|
438
|
+
# @private
|
302
439
|
OCI_SYSOPER = 0x0004
|
303
440
|
# for SYSASM authorization
|
441
|
+
# @private
|
304
442
|
OCI_SYSASM = 0x8000
|
305
443
|
|
306
|
-
#################################
|
307
|
-
#
|
308
|
-
# Attach Modes
|
309
|
-
#
|
310
|
-
#################################
|
311
|
-
|
312
|
-
# Attach using server handle from pool
|
313
|
-
OCI_CPOOL = 0x0200
|
314
|
-
|
315
444
|
#################################
|
316
445
|
#
|
317
446
|
# OCI Parameter Types
|
@@ -319,54 +448,79 @@ class OCIHandle
|
|
319
448
|
#################################
|
320
449
|
|
321
450
|
# parameter type for unknown type
|
451
|
+
# @private
|
322
452
|
OCI_PTYPE_UNK = 0
|
323
453
|
# parameter type for table
|
454
|
+
# @private
|
324
455
|
OCI_PTYPE_TABLE = 1
|
325
456
|
# parameter type for view
|
457
|
+
# @private
|
326
458
|
OCI_PTYPE_VIEW = 2
|
327
459
|
# parameter type for procedure
|
460
|
+
# @private
|
328
461
|
OCI_PTYPE_PROC = 3
|
329
462
|
# parameter type for function
|
463
|
+
# @private
|
330
464
|
OCI_PTYPE_FUNC = 4
|
331
465
|
# parameter type for package
|
466
|
+
# @private
|
332
467
|
OCI_PTYPE_PKG = 5
|
333
468
|
# parameter type for user-defined type
|
469
|
+
# @private
|
334
470
|
OCI_PTYPE_TYPE = 6
|
335
471
|
# parameter type for synonym
|
472
|
+
# @private
|
336
473
|
OCI_PTYPE_SYN = 7
|
337
474
|
# parameter type for sequence
|
475
|
+
# @private
|
338
476
|
OCI_PTYPE_SEQ = 8
|
339
477
|
# parameter type for column
|
478
|
+
# @private
|
340
479
|
OCI_PTYPE_COL = 9
|
341
480
|
# parameter type for argument
|
481
|
+
# @private
|
342
482
|
OCI_PTYPE_ARG = 10
|
343
483
|
# parameter type for list
|
484
|
+
# @private
|
344
485
|
OCI_PTYPE_LIST = 11
|
345
486
|
# parameter type for user-defined type's attribute
|
487
|
+
# @private
|
346
488
|
OCI_PTYPE_TYPE_ATTR = 12
|
347
489
|
# parameter type for collection type's element
|
490
|
+
# @private
|
348
491
|
OCI_PTYPE_TYPE_COLL = 13
|
349
492
|
# parameter type for user-defined type's method
|
493
|
+
# @private
|
350
494
|
OCI_PTYPE_TYPE_METHOD = 14
|
351
495
|
# parameter type for user-defined type method's arg
|
496
|
+
# @private
|
352
497
|
OCI_PTYPE_TYPE_ARG = 15
|
353
498
|
# parameter type for user-defined type method's result
|
499
|
+
# @private
|
354
500
|
OCI_PTYPE_TYPE_RESULT = 16
|
355
501
|
# parameter type for schema
|
502
|
+
# @private
|
356
503
|
OCI_PTYPE_SCHEMA = 17
|
357
504
|
# parameter type for database
|
505
|
+
# @private
|
358
506
|
OCI_PTYPE_DATABASE = 18
|
359
507
|
# parameter type for rule
|
508
|
+
# @private
|
360
509
|
OCI_PTYPE_RULE = 19
|
361
510
|
# parameter type for rule set
|
511
|
+
# @private
|
362
512
|
OCI_PTYPE_RULE_SET = 20
|
363
513
|
# parameter type for evaluation context
|
514
|
+
# @private
|
364
515
|
OCI_PTYPE_EVALUATION_CONTEXT = 21
|
365
516
|
# parameter type for table alias
|
517
|
+
# @private
|
366
518
|
OCI_PTYPE_TABLE_ALIAS = 22
|
367
519
|
# parameter type for variable type
|
520
|
+
# @private
|
368
521
|
OCI_PTYPE_VARIABLE_TYPE = 23
|
369
522
|
# parameter type for name value pair
|
523
|
+
# @private
|
370
524
|
OCI_PTYPE_NAME_VALUE = 24
|
371
525
|
|
372
526
|
#################################
|
@@ -376,34 +530,49 @@ class OCIHandle
|
|
376
530
|
#################################
|
377
531
|
|
378
532
|
# list type for unknown type
|
533
|
+
# @private
|
379
534
|
OCI_LTYPE_UNK = 0
|
380
535
|
# list type for column list
|
536
|
+
# @private
|
381
537
|
OCI_LTYPE_COLUMN = 1
|
382
538
|
# list type for procedure argument list
|
539
|
+
# @private
|
383
540
|
OCI_LTYPE_ARG_PROC = 2
|
384
541
|
# list type for function argument list
|
542
|
+
# @private
|
385
543
|
OCI_LTYPE_ARG_FUNC = 3
|
386
544
|
# list type for subprogram list
|
545
|
+
# @private
|
387
546
|
OCI_LTYPE_SUBPRG = 4
|
388
547
|
# list type for type attribute
|
548
|
+
# @private
|
389
549
|
OCI_LTYPE_TYPE_ATTR = 5
|
390
550
|
# list type for type method
|
551
|
+
# @private
|
391
552
|
OCI_LTYPE_TYPE_METHOD = 6
|
392
553
|
# list type for type method w/o result argument list
|
554
|
+
# @private
|
393
555
|
OCI_LTYPE_TYPE_ARG_PROC = 7
|
394
556
|
# list type for type method w/result argument list
|
557
|
+
# @private
|
395
558
|
OCI_LTYPE_TYPE_ARG_FUNC = 8
|
396
559
|
# list type for schema object list
|
560
|
+
# @private
|
397
561
|
OCI_LTYPE_SCH_OBJ = 9
|
398
562
|
# list type for database schema list
|
563
|
+
# @private
|
399
564
|
OCI_LTYPE_DB_SCH = 10
|
400
565
|
# list type for subtype list
|
566
|
+
# @private
|
401
567
|
OCI_LTYPE_TYPE_SUBTYPE = 11
|
402
568
|
# list type for table alias list
|
569
|
+
# @private
|
403
570
|
OCI_LTYPE_TABLE_ALIAS = 12
|
404
571
|
# list type for variable type list
|
572
|
+
# @private
|
405
573
|
OCI_LTYPE_VARIABLE_TYPE = 13
|
406
574
|
# list type for name value list
|
575
|
+
# @private
|
407
576
|
OCI_LTYPE_NAME_VALUE = 14
|
408
577
|
|
409
578
|
#################################
|
@@ -413,15 +582,26 @@ class OCIHandle
|
|
413
582
|
#################################
|
414
583
|
|
415
584
|
#
|
585
|
+
# @private
|
416
586
|
OCI_DURATION_INVALID = 0xFFFF
|
587
|
+
# @private
|
417
588
|
OCI_DURATION_BEGIN = 10
|
589
|
+
# @private
|
418
590
|
OCI_DURATION_NULL = OCI_DURATION_BEGIN - 1
|
591
|
+
# @private
|
419
592
|
OCI_DURATION_DEFAULT = OCI_DURATION_BEGIN - 2
|
593
|
+
# @private
|
420
594
|
OCI_DURATION_USER_CALLBACK = OCI_DURATION_BEGIN - 3
|
595
|
+
# @private
|
421
596
|
OCI_DURATION_NEXT = OCI_DURATION_BEGIN - 4
|
597
|
+
# @private
|
422
598
|
OCI_DURATION_SESSION = OCI_DURATION_BEGIN
|
599
|
+
# @private
|
423
600
|
OCI_DURATION_TRANS = OCI_DURATION_BEGIN + 1
|
601
|
+
# @private
|
424
602
|
OCI_DURATION_CALL = OCI_DURATION_BEGIN + 2
|
603
|
+
# @private
|
425
604
|
OCI_DURATION_STATEMENT = OCI_DURATION_BEGIN + 3
|
605
|
+
# @private
|
426
606
|
OCI_DURATION_CALLOUT = OCI_DURATION_BEGIN + 4
|
427
607
|
end
|