source: OpenRLabs-Git/deploy/rlabs-docker/web2py-rlabs/gluon/packages/dal/pydal/representers/oracle.py

main
Last change on this file was 42bd667, checked in by David Fuertes <dfuertes@…>, 4 years ago

Historial Limpio

  • Property mode set to 100755
File size: 1.2 KB
Line 
1import base64
2import datetime
3from ..adapters.oracle import Oracle
4from .._compat import to_native, to_bytes
5from base64 import b64encode
6from .base import SQLRepresenter, JSONRepresenter
7from . import representers
8
9
10@representers.register_for(Oracle)
11class OracleRepresenter(SQLRepresenter, JSONRepresenter):
12    def exceptions(self, obj, field_type):
13        if field_type == "blob":
14            # ensure bytes-like before conversion
15            if type(obj) != bytes:
16                obj = to_bytes(obj)
17            obj = to_native(b64encode(obj))
18            return "utl_raw.cast_to_raw('%s')" % obj
19        elif field_type == "date":
20            if isinstance(obj, (datetime.date, datetime.datetime)):
21                obj = obj.isoformat()[:10]
22            else:
23                obj = str(obj)
24            return "to_date('%s','yyyy-mm-dd')" % obj
25        elif field_type == "datetime":
26            if isinstance(obj, datetime.datetime):
27                obj = obj.isoformat()[:19].replace("T", " ")
28            elif isinstance(obj, datetime.date):
29                obj = obj.isoformat()[:10] + " 00:00:00"
30            else:
31                obj = str(obj)
32            return "to_date('%s','yyyy-mm-dd hh24:mi:ss')" % obj
33        return None
Note: See TracBrowser for help on using the repository browser.