[英]Convert oracle query to postgresql
I need to convert oracle query to postgresql我需要将 oracle 查询转换为 postgresql
(select PK_,
'Statement of Holdings' as NOTIFICATIONNAME_ ,
CASE NOTIFICATIONSSTATUS_
WHEN 'Processed' THEN 'Succeeded'
WHEN 'Processed With Failure' THEN 'Failed'
WHEN 'Impacted' THEN 'Succeeded'
WHEN 'Impact Failed' THEN 'Failed'
WHEN 'Archived' THEN 'Succeeded'
WHEN 'Prepared' THEN 'Running'
ELSE 'Planned'
END as STATUS ,
DIRECTION_,
UPDATEDATE_ as updatedate_,
(to_date('19700101', 'YYYY-MM-DD HH24:MI:SS' ) + (( 1 / 24 / 60 / 60 / 1000) * UPDATEDATE_)) as MODIFICATIONDATE
from atementOfHoldingsNotification_
where (DIRECTION_ is not null) and (updatedate_ > 1609462800000) )
union all
(select PK_,
'Statement of Transactions' as NOTIFICATIONNAME_ ,
CASE NOTIFICATIONSSTATUS_
WHEN 'Processed' THEN 'Succeeded'
WHEN 'Processed With Failure' THEN 'Failed'
WHEN 'Impacted' THEN 'Succeeded'
WHEN 'Impact Failed' THEN 'Failed'
WHEN 'Archived' THEN 'Succeeded'
WHEN 'Prepared' THEN 'Running'
ELSE 'Planned'
END as STATUS ,
DIRECTION_,
UPDATEDATE_ as updatedate_,
(to_date('19700101', 'YYYY-MM-DD HH24:MI:SS' ) + (( 1 / 24 / 60 / 60 / 1000) * UPDATEDATE_)) as MODIFICATIONDATE
from entOfTransactionsNofitication_
where (DIRECTION_ is not null) and (updatedate_ > 1609462800000))
union all
(select PK_,
'Statement of Pending Transactions' as NOTIFICATIONNAME_ ,
CASE NOTIFICATIONSSTATUS_
WHEN 'Processed' THEN 'Succeeded'
WHEN 'Processed With Failure' THEN 'Failed'
WHEN 'Impacted' THEN 'Succeeded'
WHEN 'Impact Failed' THEN 'Failed'
WHEN 'Archived' THEN 'Succeeded'
WHEN 'Prepared' THEN 'Running'
ELSE 'Planned'
END as STATUS ,
DIRECTION_,
UPDATEDATE_ as updatedate_,
I got this issue when i executed:我在执行时遇到了这个问题:
ERROR: operator does not exist: date + numeric LINE 4: ..._, (to_date('19700101', 'YYYY-MM-DD HH24:MI:SS' ) + (( 1 / 2... ^ HINT: No operator matches the given name and argument types. You might need to add explicit type casts. SQL state: 42883 Character: 586
错误:运算符不存在:日期 + 数字第 4 行:..._, (to_date('19700101', 'YYYY-MM-DD HH24:MI:SS' ) + (( 1 / 2... ^ 提示:没有运算符匹配给定的名称和参数类型。您可能需要添加显式类型转换。SQL state:42883 字符:586
Instead of:代替:
to_date('19700101', 'YYYY-MM-DD HH24:MI:SS' ) + (( 1 / 24 / 60 / 60 / 1000) * UPDATEDATE_
You can use TIMESTAMP
and INTERVAL
literals:您可以使用
TIMESTAMP
和INTERVAL
文字:
TIMESTAMP '1970-01-01 00:00:00.000 UTC' + UPDATEDATE_ * INTERVAL '0.001' SECOND
Which works in both Oracle fiddle and PostgreSQL fiddle .这适用于 Oracle fiddle和 PostgreSQL fiddle 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.