oracle sql中星号的使用

pao*_*lov 3 sql oracle sqlplus

为什么星号在 SELECT 子句中单独使用时在 oracle sql 中使用星号完全有效,但当 SELECT 中存在其他表达式时会导致错误?

例如:

select * from table1  -- is ok
Run Code Online (Sandbox Code Playgroud)

但:

select field, * from table -- is not ok
Run Code Online (Sandbox Code Playgroud)

Gor*_*off 5

当没有其他列时,Oracle 只允许使用“裸”星号。

否则,您需要对其进行限定:

select t.field, t.*
from table1 t;
Run Code Online (Sandbox Code Playgroud)

我怀疑原因是 Oracle 认为select *是一个完整的子句,而不是*所有列的缩写。