在Oracle中,可以像这样动态生成伪列和“伪表”(不确定这是否是正式术语):
(SELECT 'abc' AS pseudo_col_1, 123 AS pseudo_col_2 FROM dual) pseudo_table
我希望这样做,同时指定pseudo_col_1
和/或pseudo_col_2
的数据类型。
以下内容似乎在Oracle 11g中起作用,其中pseudo_col_2
被指定为CLOB数据类型:
(SELECT 'abc' AS pseudo_col_1, TO_CLOB(123) AS pseudo_col_2 FROM dual) pseudo_table
但是,我需要在没有TO_CLOB功能的 Oracle 8i 上获得相同的结果。
免责声明:我知道8i已经过时,因为我对此拥有零控制权,所以不必对此方面发表评论。
答案 0 :(得分:1)
您可以cast()
设置为所需的类型:
SELECT cast('abc' as varchar2(255)) AS pseudo_col_1,
cast(123 as decimal(10, 2)) AS pseudo_col_2
FROM dual;