MarketSquare / MarketSquare/Robotframework-Database-Library

oracledb thin client - support locale specific date and number conversion

Open
#175 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

improvement
Dominant language
Python
Stars
179
Forks
178
PR merge metrics
No merged PRs in 30d

Description

Currently there is no native support for the python oracledb module, so this issue occurs when using "connect using custom params" mode (see #173 for connection example).
There is a problem if the test data used in Robot Framework has some regional format different from the Oracle DB.
For example, with decimal/float number and dates:
- The standard English Oracle format for a decimal number is point-based - e.g. `123.45`.
- But in some other languages/regions (e.g. in Germany) the comma-based format is used - `123,45`.

So before I save some local values to the database or compare them with the database values, there is some conversion to be done.
**Currently it has to performed manually**.
### Maybe there is a better way?

The thin mode of the oracledb client doesn't support Oracle Globalization variables (see the full comparison between thin and thick clients [here](https://python-oracledb.readthedocs.io/en/latest/user_guide/appendix_a.html#featuresummary)).
So they advice to use the python globalization support - and provide an [example](https://python-oracledb.readthedocs.io/en/latest/user_guide/globalization.html#thin-mode-locale-aware-number-and-date-conversions).

Also I'm not sure, but maybe this issue is relevant also for other databases?

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the custom-params connection mode and the connection example in issue #173, then read the linked python-oracledb thin-mode globalization example. Define how locale-aware date and number conversion should work for Robot Framework test data, and clarify whether the scope includes databases beyond Oracle.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
databases
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.