|
1
|
|
|
<?php |
|
2
|
|
|
|
|
3
|
|
|
namespace Jpina\PdoOci8; |
|
4
|
|
|
|
|
5
|
|
|
use Jpina\PdoOci8\SqlStateCode; |
|
6
|
|
|
|
|
7
|
|
|
class OracleSqlStateCode |
|
8
|
|
|
{ |
|
9
|
|
|
private function __construct() |
|
10
|
|
|
{ |
|
11
|
|
|
} |
|
12
|
|
|
|
|
13
|
|
|
/** |
|
14
|
|
|
* @param int $errorCode |
|
15
|
|
|
* @return string |
|
16
|
|
|
* @see https://docs.oracle.com/cd/F49540_01/DOC/server.815/a58231/appd.htm |
|
17
|
|
|
*/ |
|
18
|
3 |
|
public static function getSqlStateErrorCode($errorCode) |
|
19
|
|
|
{ |
|
20
|
3 |
|
switch (true) { |
|
21
|
3 |
|
case $errorCode === 0: |
|
22
|
1 |
|
return SqlStateCode::SUCCESSFUL_COMPLETION; |
|
23
|
2 |
|
case $errorCode === 1095 || $errorCode === 1403: |
|
24
|
|
|
return SqlStateCode::NO_DATA; |
|
25
|
2 |
|
case $errorCode === 2126: |
|
26
|
|
|
return SqlStateCode::INVALID_DESCRIPTOR_COUNT; |
|
27
|
2 |
|
case $errorCode === 2121: |
|
28
|
|
|
return SqlStateCode::CONNECTION_DOES_NOT_EXIST; |
|
29
|
2 |
|
case $errorCode >= 3000 && $errorCode <= 3099: |
|
30
|
|
|
return SqlStateCode::FEATURE_NOT_SUPPORTED; |
|
31
|
2 |
|
case $errorCode === 1427 || $errorCode === 2112: |
|
32
|
|
|
return SqlStateCode::CARDINALITY_VIOLATION; |
|
33
|
2 |
|
case $errorCode === 1401 || $errorCode === 1406: |
|
34
|
|
|
return SqlStateCode::STRING_DATA_RIGHT_TRUNCATION; |
|
35
|
2 |
|
case $errorCode === 1405 || $errorCode === 2124: |
|
36
|
|
|
return SqlStateCode::INDICATOR_VARIABLE_NOT_SUPPLIED; |
|
37
|
2 |
|
case $errorCode === 1426 || $errorCode === 1438: |
|
38
|
2 |
|
case $errorCode === 1455 || $errorCode === 1457: |
|
39
|
|
|
return SqlStateCode::NUMERIC_VALUE_OUT_OF_RANGE; |
|
40
|
2 |
|
case $errorCode >= 1800 && $errorCode <= 1899: |
|
41
|
|
|
return SqlStateCode::DATETIME_FIELD_OVERFLOW; |
|
42
|
2 |
|
case $errorCode === 1476: |
|
43
|
|
|
return SqlStateCode::DIVISION_BY_ZERO; |
|
44
|
2 |
|
case $errorCode === 911 || $errorCode === 1425: |
|
45
|
|
|
return SqlStateCode::INVALID_ESCAPE_CHAR; |
|
46
|
2 |
|
case $errorCode === 1411: |
|
47
|
|
|
return SqlStateCode::INDICATOR_OVERFLOW; |
|
48
|
2 |
|
case $errorCode === 1025 || $errorCode === 1488: |
|
49
|
2 |
|
case $errorCode >= 4000 && $errorCode <= 4019: |
|
50
|
|
|
return SqlStateCode::INVALID_PARAM_VALUE; |
|
51
|
2 |
|
case $errorCode >= 1479 && $errorCode <= 1480: |
|
52
|
|
|
return SqlStateCode::UNTERMINATED_C_STRING; |
|
53
|
2 |
|
case $errorCode === 1424: |
|
54
|
|
|
return SqlStateCode::INVALID_ESCAPE_SEQUENCE; |
|
55
|
2 |
|
case $errorCode === 1: |
|
56
|
2 |
|
case $errorCode >= 2290 && $errorCode <= 2299: |
|
57
|
|
|
return SqlStateCode::INTEGRITY_CONSTRAINT_VIOLATION_1; |
|
58
|
2 |
|
case $errorCode >= 1001 && $errorCode <= 1003: |
|
59
|
2 |
|
case $errorCode === 1410 || $errorCode === 8006: |
|
60
|
2 |
|
case $errorCode === 2114 || $errorCode === 2117: |
|
61
|
2 |
|
case $errorCode === 2118 || $errorCode === 2122: |
|
62
|
|
|
return SqlStateCode::INVALID_CURSOR_STATE; |
|
63
|
2 |
|
case $errorCode === 2091 || $errorCode === 2092: |
|
64
|
|
|
return SqlStateCode::TRANSACTION_ROLLBACK; |
|
65
|
2 |
|
case $errorCode === 22 || $errorCode === 251: |
|
66
|
2 |
|
case $errorCode >= 900 && $errorCode <= 999: |
|
67
|
2 |
|
case $errorCode === 1031: |
|
68
|
2 |
|
case $errorCode >= 1490 && $errorCode <= 1493: |
|
69
|
2 |
|
case $errorCode >= 1700 && $errorCode <= 1799: |
|
70
|
2 |
|
case $errorCode >= 1900 && $errorCode <= 2099: |
|
71
|
2 |
|
case $errorCode >= 2140 && $errorCode <= 2289: |
|
72
|
2 |
|
case $errorCode >= 2420 && $errorCode <= 2424: |
|
73
|
2 |
|
case $errorCode >= 2450 && $errorCode <= 2499: |
|
74
|
2 |
|
case $errorCode >= 3276 && $errorCode <= 3299: |
|
75
|
2 |
|
case $errorCode >= 4040 && $errorCode <= 4059: |
|
76
|
2 |
|
case $errorCode >= 4070 && $errorCode <= 4099: |
|
77
|
2 |
|
return SqlStateCode::SYNTAX_ERROR_OR_ACCESS_RULE_VIOLATION_3; |
|
78
|
|
|
case $errorCode === 1402: |
|
79
|
|
|
return SqlStateCode::WITH_CHECK_OPTION_VIOLATION; |
|
80
|
|
|
case $errorCode >= 370 && $errorCode <= 429: |
|
81
|
|
|
case $errorCode >= 600 && $errorCode <= 899: |
|
82
|
|
|
case $errorCode >= 6430 && $errorCode <= 6449: |
|
83
|
|
|
case $errorCode >= 7200 && $errorCode <= 7999: |
|
84
|
|
|
case $errorCode >= 9700 && $errorCode <= 9999: |
|
85
|
|
|
return SqlStateCode::SYSTEM_ERRORS; |
|
86
|
|
|
case $errorCode >= 18 && $errorCode <= 35: |
|
87
|
|
|
case $errorCode >= 50 && $errorCode <= 68: |
|
88
|
|
|
case $errorCode >= 2376 && $errorCode <= 2399: |
|
89
|
|
|
case $errorCode >= 4020 && $errorCode <= 4039: |
|
90
|
|
|
return SqlStateCode::RESOURCE_ERROR; |
|
91
|
|
|
case $errorCode >= 100 && $errorCode <= 120: |
|
92
|
|
|
case $errorCode >= 440 && $errorCode <= 569: |
|
93
|
|
|
return SqlStateCode::MULTI_THREADED_SERVER_OR_DETACHED_PROCESS_ERROR; |
|
94
|
|
|
case $errorCode >= 150 && $errorCode <= 159: |
|
95
|
|
|
case $errorCode === 2128: |
|
96
|
|
|
case $errorCode >= 2700 && $errorCode <= 2899: |
|
97
|
|
|
case $errorCode >= 3100 && $errorCode <= 3199: |
|
98
|
|
|
case $errorCode >= 6200 && $errorCode <= 6249: |
|
99
|
|
|
return SqlStateCode::ORACLE_XA_AND_2_TASK_INTERFACE_ERROR; |
|
100
|
|
|
case $errorCode >= 200 && $errorCode <= 369: |
|
101
|
|
|
case $errorCode >= 1100 && $errorCode <= 1250: |
|
102
|
|
|
return SqlStateCode::ARCHIVAL_AND_MEDIA_RECOVERY_ERROR; |
|
103
|
|
|
case $errorCode >= 6500 && $errorCode <= 6599: |
|
104
|
|
|
return SqlStateCode::PL_SQL_ERROR; |
|
105
|
|
|
case $errorCode >= 6000 && $errorCode <= 6149: |
|
106
|
|
|
case $errorCode >= 6250 && $errorCode <= 6429: |
|
107
|
|
|
case $errorCode >= 6600 && $errorCode <= 6999: |
|
108
|
|
|
case $errorCode >= 12100 && $errorCode <= 12299: |
|
109
|
|
|
case $errorCode >= 12500 && $errorCode <= 12599: |
|
110
|
|
|
return SqlStateCode::SQL_NET_DRIVER_ERROR; |
|
111
|
|
|
case $errorCode >= 430 && $errorCode <= 439: |
|
112
|
|
|
return SqlStateCode::LICENSING_ERROR; |
|
113
|
|
|
case $errorCode >= 570 && $errorCode <= 599: |
|
114
|
|
|
case $errorCode >= 7000 && $errorCode <= 7199: |
|
115
|
|
|
return SqlStateCode::SQL_CONNECT_ERROR; |
|
116
|
|
|
case $errorCode >= 1000 && $errorCode <= 1099: |
|
117
|
|
|
case $errorCode >= 1400 && $errorCode <= 1489: |
|
118
|
|
|
case $errorCode >= 1495 && $errorCode <= 1499: |
|
119
|
|
|
case $errorCode >= 1500 && $errorCode <= 1699: |
|
120
|
|
|
case $errorCode >= 2400 && $errorCode <= 2419: |
|
121
|
|
|
case $errorCode >= 2425 && $errorCode <= 2449: |
|
122
|
|
|
case $errorCode >= 4060 && $errorCode <= 4069: |
|
123
|
|
|
case $errorCode >= 8000 && $errorCode <= 8190: |
|
124
|
|
|
case $errorCode >= 12000 && $errorCode <= 12019: |
|
125
|
|
|
case $errorCode >= 12300 && $errorCode <= 12499: |
|
126
|
|
|
case $errorCode >= 12700 && $errorCode <= 21999: |
|
127
|
|
|
return SqlStateCode::SQL_EXECUTE_PHASE_ERROR; |
|
128
|
|
|
case $errorCode === 2100: |
|
129
|
|
|
return SqlStateCode::OUT_OF_MEMORY; |
|
130
|
|
|
case $errorCode === 2101: |
|
131
|
|
|
return SqlStateCode::INCONSISTENT_CURSOR_CACHE_MISMATCH; |
|
132
|
|
|
case $errorCode === 2102: |
|
133
|
|
|
return SqlStateCode::INCONSISTENT_CURSOR_CACHE_NO_ENTRY; |
|
134
|
|
|
case $errorCode === 2103: |
|
135
|
|
|
return SqlStateCode::INCONSISTENT_CURSOR_CACHE_REF_OUT_OF_RANGE; |
|
136
|
|
|
case $errorCode === 2104: |
|
137
|
|
|
return SqlStateCode::INCONSISTENT_HOST_CACHE_NOT_AVAILABLE; |
|
138
|
|
|
case $errorCode === 2105: |
|
139
|
|
|
return SqlStateCode::INCONSISTENT_CURSOR_CACHE_NOT_FOUND; |
|
140
|
|
|
case $errorCode === 2106: |
|
141
|
|
|
return SqlStateCode::INCONSISTENT_CURSOR_CACHE_INVALID_NUMBER; |
|
142
|
|
|
case $errorCode === 2107: |
|
143
|
|
|
return SqlStateCode::PROGRAM_TOO_OLD; |
|
144
|
|
|
case $errorCode === 2108: |
|
145
|
|
|
return SqlStateCode::INVALID_DESCRIPTOR_PASSED; |
|
146
|
|
|
case $errorCode === 2109: |
|
147
|
|
|
return SqlStateCode::INCONSISTENT_HOST_CACHE_REF_OUT_OF_RANGE; |
|
148
|
|
|
case $errorCode === 2110: |
|
149
|
|
|
return SqlStateCode::INCONSISTENT_HOST_CACHE_INVALID_ENTRY_TYPE; |
|
150
|
|
|
case $errorCode === 2111: |
|
151
|
|
|
return SqlStateCode::HEAP_CONSISTENCY_ERROR; |
|
152
|
|
|
case $errorCode === 2113: |
|
153
|
|
|
return SqlStateCode::UNABLE_TO_OPEN_MESSAGE_FILE; |
|
154
|
|
|
case $errorCode === 2115: |
|
155
|
|
|
return SqlStateCode::CODE_GENERATION_INTERNAL_CONSISTENCY_FAILED; |
|
156
|
|
|
case $errorCode === 2116: |
|
157
|
|
|
return SqlStateCode::REENTRANT_CODE_GENERATOR_GAVE_INVALID_CONTEXT; |
|
158
|
|
|
case $errorCode === 2119: |
|
159
|
|
|
return SqlStateCode::INVALID_HSTDEF_ARGUMENT; |
|
160
|
|
|
case $errorCode === 2120: |
|
161
|
|
|
return SqlStateCode::FIRST_AND_SECOND_ARGS_TO_SQLRCN_BOTH_NULL; |
|
162
|
|
|
case $errorCode === 2122: |
|
163
|
|
|
return SqlStateCode::INVALID_OPEN_OR_PREPARE; |
|
164
|
|
|
case $errorCode === 2123: |
|
165
|
|
|
return SqlStateCode::APPLICATION_CONTEXT_NOT_FOUND; |
|
166
|
|
|
case $errorCode === 2125: |
|
167
|
|
|
return SqlStateCode::CONNECTION_ERROR_NO_ERROR_TEXT; |
|
168
|
|
|
case $errorCode === 2127: |
|
169
|
|
|
return SqlStateCode::PRECOMPILER_VERSION_MISMATCH; |
|
170
|
|
|
case $errorCode === 2129: |
|
171
|
|
|
return SqlStateCode::FETCHED_NUMBER_OF_BYTES_IS_ODD; |
|
172
|
|
|
case $errorCode === 2130: |
|
173
|
|
|
return SqlStateCode::EXEC_TOOLS_INTERFACE_NOT_AVAILABLE; |
|
174
|
|
|
case $errorCode >= 10000 && $errorCode <= 10999: |
|
175
|
|
|
return SqlStateCode::DEBUG_EVENTS; |
|
176
|
|
|
} |
|
177
|
|
|
|
|
178
|
|
|
return SqlStateCode::GENERAL_ERROR; |
|
179
|
|
|
} |
|
180
|
|
|
} |
|
181
|
|
|
|