从Dual中选择时,是否可以指定Oracle 8i伪卷的数据类型



在Oracle中,可以动态生成伪列和"伪表"(不确定这是否是官方术语(,如下所示:

(SELECT 'abc' AS pseudo_col_1,  123 AS pseudo_col_2 FROM dual) pseudo_table

我希望在指定pseudo_col_1和/或pseudo_col_2的数据类型时也这样做。以下内容似乎适用于Oracle11g,其中pseudo_col_2被指定为CLOB数据类型:

(SELECT 'abc' AS pseudo_col_1,  TO_CLOB(123) AS pseudo_col_2 FROM dual) pseudo_table

但是,我需要在没有to_CLOB功能的Oracle8i上实现相同的结果。

免责声明:我知道8i已经过时了,没有必要对这一方面发表评论,因为我对此没有任何控制权。

您可以将cast()转换为您想要的类型:

SELECT cast('abc' as varchar2(255)) AS pseudo_col_1,
cast(123 as decimal(10, 2)) AS pseudo_col_2
FROM dual;

最新更新