|
1 | 1 | """
|
2 |
| -Copyright (c) 2022, Oracle and/or its affiliates. |
| 2 | +Copyright (c) 2023, Oracle and/or its affiliates. |
3 | 3 | Copyright (c) 2020, Vitor Avancini
|
4 | 4 |
|
5 | 5 | Licensed under the Apache License, Version 2.0 (the "License");
|
|
33 | 33 | logger = AdapterLogger("oracle")
|
34 | 34 |
|
35 | 35 |
|
| 36 | +DATATYPES = { |
| 37 | + "DB_TYPE_BFILE": "BFILE", |
| 38 | + "DB_TYPE_BINARY_DOUBLE": "BINARY_DOUBLE", |
| 39 | + "DB_TYPE_BINARY_FLOAT": "BINARY_FLOAT", |
| 40 | + "DB_TYPE_BINARY_INTEGER": "BINARY_INTEGER", |
| 41 | + "DB_TYPE_BLOB": "BLOB", |
| 42 | + "DB_TYPE_BOOLEAN": "BOOLEAN", |
| 43 | + "DB_TYPE_CHAR": "CHAR", |
| 44 | + "DB_TYPE_CLOB": "CLOB", |
| 45 | + "DB_TYPE_DATE": "DATE", |
| 46 | + "DB_TYPE_INTERVAL_DS": "INTERVAL DAY TO SECOND", |
| 47 | + "DB_TYPE_INTERVAL_YM": "INTERVAL YEAR TO MONTH", |
| 48 | + "DB_TYPE_JSON": "JSON", |
| 49 | + "DB_TYPE_LONG": "LONG", |
| 50 | + "DB_TYPE_LONG_NVARCHAR": "LONG NVARCHAR", |
| 51 | + "DB_TYPE_LONG_RAW": "LONG RAW", |
| 52 | + "DB_TYPE_NCHAR": "NCHAR", |
| 53 | + "DB_TYPE_NCLOB": "NCLOB", |
| 54 | + "DB_TYPE_NUMBER": "NUMBER", |
| 55 | + "DB_TYPE_NVARCHAR": "NVARCHAR2", |
| 56 | + "DB_TYPE_OBJECT": "OBJECT", |
| 57 | + "DB_TYPE_RAW": "RAW", |
| 58 | + "DB_TYPE_ROWID": "ROWID", |
| 59 | + "DB_TYPE_TIMESTAMP": "TIMESTAMP", |
| 60 | + "DB_TYPE_TIMESTAMP_LTZ": "TIMESTAMP WITH LOCAL TZ", |
| 61 | + "DB_TYPE_TIMESTAMP_TZ": "TIMESTAMP WITH TZ", |
| 62 | + "DB_TYPE_VARCHAR": "VARCHAR2" |
| 63 | +} |
| 64 | + |
36 | 65 | class OracleConnectionMethod(enum.Enum):
|
37 | 66 | HOST = 1
|
38 | 67 | TNS = 2
|
@@ -88,7 +117,7 @@ def type(self):
|
88 | 117 |
|
89 | 118 | @property
|
90 | 119 | def unique_field(self):
|
91 |
| - return self.database |
| 120 | + return self.database or self.user |
92 | 121 |
|
93 | 122 | def _connection_keys(self) -> Tuple[str]:
|
94 | 123 | """
|
@@ -284,3 +313,7 @@ def add_begin_query(self):
|
284 | 313 | connection = self.get_thread_connection()
|
285 | 314 | cursor = connection.handle.cursor
|
286 | 315 | return connection, cursor
|
| 316 | + |
| 317 | + @classmethod |
| 318 | + def data_type_code_to_name(cls, type_code) -> str: |
| 319 | + return DATATYPES[type_code.name] |
0 commit comments