Posted: 17 May 2017 14:46 EDT Last activity: 7 Jun 2017 11:03 EDT
InCorrect Value for pxCreateDateTime for Oracle DB
We are using oracle 12 version as DB for our pega environment, we identified that pxCreateDateTime is not holding milli seconds as the column type in DB is DATE(if the type is TIMESTAMP it holds full time stamp).
In our application, we have requirement to send complete work object created time stamp with milli seconds to 3rd party system along with assignmentID, but due this we are unable to send milli seconds part.
Can you please help by letting me know whether pega has any plan to update the column type for oracle DB in future. Mean time, can you also please help me by suggesting work around.
Our requirement is to send pxcreateDatetime with full time stamp i.e., included with milli seconds. we are fetching the results with report definition & it's getting the time stamp from independent columns instead of blob which not included with milli seconds part, if we use obj method we can get the milli seconds too as it will get from blob. I came to know from support team that, this is the issue only with Oracle DB & for other vendor DB's it will work as required(included with milli seconds).
Here, my question is, Is pega having any plan to update the Oracle DB columns to TIMESTAMP instead of DATE for future versions. ?
Unfortunately this is a limitation with the Oracle product. Decimal value is read correctly when retrieving from a BLOB and not directly.
However some works arounds are being provide to use as desired in some use cases
If you look at pxCreateDateTime from the blob instead of the exposed column, you can avoid the db-type-dependent millisecond behavior. One way to access pxCreateDateTime from the blob is by using obj-open-by-handle.
Another way is to use executeRDB and specify an asterisk for the indicator of which columns to read. Pega treats asterisk as special and when it sees it, it reads from the blob.
Scope for updating based on one single database behavior may not be considered.
Pega does now support Oracle TIMESTAMP as of 7.1.8. I do not believe that there is any plans at the moment to explicitly convert all OOB DATE columns to TIMESTAMP on an Oracle database. If you need the milliseconds then you should be able to alter the column to be TIMESTAMP. You would then need to run the column population tool to repopulate the column from the blob for any existing rows.
Here are some articles that talk about support for Oracle TIMESTAMP column.