Hello, I found a bug in array timestamps.
Step 1: Writing values Id, fromDate, endDate and others @ 16:33:24
Step 2: Writing corr value to DPNames @16:37:56
Step 3: Executing SELECT ALL '_offline.._value', '_offline.._stime' FROM 'GettinHistoryTask.DPNames'
Query returns two records with incorrect timestamps
Empty value has 16:37:56 timestamp
and corrected value has 16:33:24 timestamp
string array correction in ORACLE DB
- DKuchev@croc.ru
- Posts:10
- Joined: Tue Feb 12, 2019 7:19 pm
string array correction in ORACLE DB
- Attachments
-
- arch.png (6.48 KiB) Viewed 4324 times
- leoknipp
- Posts:2928
- Joined: Tue Aug 24, 2010 7:28 pm
Re: string array correction in ORACLE DB
You should not use SELECT ALL at queries. Please use SELECT instead.
In the FROM statement you have used the dp element GettinHistoryTask.DPNames.
Did you really get values for other elements?
Best Regards
Leopold Knipp
Senior Support Specialist
In the FROM statement you have used the dp element GettinHistoryTask.DPNames.
Did you really get values for other elements?
Best Regards
Leopold Knipp
Senior Support Specialist
- DKuchev@croc.ru
- Posts:10
- Joined: Tue Feb 12, 2019 7:19 pm
Re: string array correction in ORACLE DB
Ok I'll check without 'ALL' statement.
No I don't, I getting two records for one element 'GettinHistoryTask.DPNames' with incorrect timestamps.
No I don't, I getting two records for one element 'GettinHistoryTask.DPNames' with incorrect timestamps.
- leoknipp
- Posts:2928
- Joined: Tue Aug 24, 2010 7:28 pm
Re: string array correction in ORACLE DB
I have tested it and I cannot reproduce the problem.
For the test I have configured a datapoint with 3 elements:
-- Structure of dp elements
i1 = integer value
f1 = float value
s1 = string value
-- Added the _archive config and configured archiving
-- Three dpSet() calls to write the value 1 or "one"
-- dpQuery + TIMERANGE to check if the values are archived
The values are returned correctly.
-- 1 dpSet() to set i1 and f1
-- 5 seconds delay
-- 1 dpSet() to write a _corr.._value for s1
-- dpQuery + TIMERANGE to check if the values are archived
The values are returned correctly.
Best Regards
Leopold Knipp
Senior Support Specialist
For the test I have configured a datapoint with 3 elements:
-- Structure of dp elements
i1 = integer value
f1 = float value
s1 = string value
-- Added the _archive config and configured archiving
-- Three dpSet() calls to write the value 1 or "one"
-- dpQuery + TIMERANGE to check if the values are archived
The values are returned correctly.
-- 1 dpSet() to set i1 and f1
-- 5 seconds delay
-- 1 dpSet() to write a _corr.._value for s1
-- dpQuery + TIMERANGE to check if the values are archived
The values are returned correctly.
Best Regards
Leopold Knipp
Senior Support Specialist