使用通配符时将今天的日期添加到 Oracle 查询结果 *

Adding today's date to Oracle query results when using wildcard *

这可能是缺乏非常基础的知识,但我就是想不通。寻找答案和反复试验并没有多大帮助。

从 table (SELECT * FROM X) 返回所有记录集 --> 没问题。 返回今天的日期 (SELECT TO_CHAR(SYSDATE, 'DD-MM-YYYY') FROM DUAL) --> 没问题。

从同一 table 返回所有记录集以及今天的日期 --> 运气不好。我已经尝试过子选择、联合、连接、with-statements……这让我抓狂。

当我命名我想要的列时 returned (SELECT Columname1, Columnname2, to_char(sysdate....)) 它起作用了。这个问题似乎只有在使用通配符时才会出现。

如何将 Oracle 设置为 return "all columns",今天的日期?

谢谢!

您必须在通配符前加上 table 名称(或别名,如果您使用过的话):

SELECT X.*, TO_CHAR(SYSDATE, 'DD-MM-YYYY') AS TODAYS_DATE FROM X

使用通配符通常不是一个好主意,因为您无法控制列的排列顺序(如果 table 在不同的环境中构建不同)并且任何使用此输出的人都可能是如果 table 定义在未来发生变化,例如通过添加另一列。最好单独列出所有列。