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
|
|
|
|