我希望在SQL结果中打印一行,它表示列标题。列标题仅为VARCHAR值。现在我遇到了问题,获取以下错误消息:"ORA-01790:表达式必须具有与相应表达式相同的数据类型“:
SELECT *
FROM
(
SELECT 'MyFirstString',
'MySecondString',
'MyThirdString'
FROM DUAL
)
UNION
(
SELECT firstCol, // contains number
secondCol, // contains DATE
thirdCol // contains VARCHAR2
) 我怎样才能解决这个问题。需要额外的列标题,因为我必须将数据导出到另一个文件中(例如CSV,PDF.)
发布于 2016-01-25 11:30:48
使用to_char浇铸
SELECT *
FROM
(
SELECT 'MyFirstString',
'MySecondString',
'MyThirdString'
FROM DUAL
)
UNION
(
SELECT to_char(firstCol), // contains number
to_char(secondCol), // contains DATE
thirdCol // contains VARCHAR2(no need cast here since its already string)
) 稍后,您可能需要将它转换回原来的样子,这取决于您想用它做什么。
对于日期,您可以使用to_date,号码to_decimal\to_number等。
发布于 2016-01-25 11:29:24
您可以尝试这样做,并导出带有标头的表。
SELECT firstCol as 'MyFirstString', // contains number
secondCol as 'MySecondString', // contains DATE
thirdCol as 'MyThirdString' // contains VARCHAR2https://stackoverflow.com/questions/34991454
复制相似问题