oracle sql中星号的使用
Posted
技术标签:
【中文标题】oracle sql中星号的使用【英文标题】:Use of asterisk in oracle sql 【发布时间】:2019-03-20 22:56:29 【问题描述】:为什么在 SELECT 子句中单独使用星号时在 oracle sql 中使用星号完全有效,但当 SELECT 中还有其他表达式时会导致错误?
例如:
select * from table1 -- is ok
但是:
select field, * from table -- is not ok
【问题讨论】:
在过去的几年里,我一直在寻找一种更好的方式来表达 SQL 中的列和表达式,但除了*
之外没有太多。当表遭受修改时,这对于 ORM 很重要,以便随着时间的推移产生有效的查询。对该问题 +1,即使我知道还没有更好的答案。
【参考方案1】:
Oracle 只允许在没有其他列时使用“裸”星号。
否则,您需要对其进行限定:
select t.field, t.*
from table1 t;
我怀疑原因是 Oracle 认为 select *
是一个完整的子句,而不是 *
是所有列的缩写。
【讨论】:
以上是关于oracle sql中星号的使用的主要内容,如果未能解决你的问题,请参考以下文章