oracle - 不使用函数将 LONG 格式转换为 DATE
问题描述
该列HIGH_VALUE
具有类似于下面的数据,类型为LONG
,并且始终具有相同的长度:
TIMESTAMP' 2019-01-30 00:00:00'
如何在DATE
不使用函数的情况下将其转换为类型?
我的总体目标是创建一个结果集,然后可以将其用作其他聚合的内部查询。例如,我希望能够根据将HIGH_VALUE
列转换为日期产生的日期来总结一年中的行数。
我对此数据库只有读取权限,因此无法创建函数。我在 StackOverflow 和其他网站上看到过其他解决方案,但它们都需要创建一个函数。
ALL_TAB_PARTITIONS
是标准的内置 Oracle 表,因此我不包括表结构。如果这是一个问题,请告诉我,我将创建一个示例表。
下面是一个示例查询和由此查询产生的一行数据。请注意,我无法在此数据库上创建表,因此我还需要一种无需创建临时表即可工作的方法。
Insert into EXPORT_TABLE (TABLE_OWNER,TABLE_NAME,PARTITION_NAME,HIGH_VALUE,NUM_ROWS)
VALUES ('TO','TN','SYS_P201709','TIMESTAMP'' 2019-01-30 00:00:00''',5053133);
SELECT TABLE_OWNER, TABLE_NAME, PARTITION_NAME, HIGH_VALUE, NUM_ROWS
from ALL_TAB_PARTITIONS;
解决方案
如果您使用的是 Oracle 12c,您仍然可以使用函数但内联定义:
WITH FUNCTION with_function(p_id IN NUMBER) RETURN NUMBER IS
BEGIN
-- logic here
RETURN p_id;
END;
SELECT with_function(id)
FROM your_table
推荐阅读
- javascript - 使用jquery在每秒钟点击一次的菜单切换
- javascript - 重复星级问题
- .net-core - 突然 NLog 包含 ReadAsync 和 WriteAsync HTTP 日志条目
- powerbi - 如何在 power bi 中动态重命名列标题?
- elasticsearch - 将日志转发到索引模板,而不是直接从 Fluent-bit 到 ElasticSearch 的索引
- salesforce - 如何在 Health 云患者列表视图中添加更多操作
- javascript - ^await(带有插入符号)在编译的 JS 中是什么意思?
- php - 如何在信封中设置事件名称和延迟时间?
- javascript - 通过对象的JS数组过滤并添加用户名相同的步骤值
- python - 试图将两个 excel 连接到另一个 excel