sql - salida - procedure oracle ejemplos
¿A qué se refiere `x` en esta declaración SQL de Oracle:` select*from dual donde x=1 o 1=1` (1)
Parece suceder porque en algunas versiones de Oracle DB existen sinónimos llamados X e Y:
select owner, synonym_name, table_owner, table_name from dba_synonyms where synonym_name in (''X'', ''Y'');
OWNER SYNONYM_NAME TABLE_OWNER TABLE_NAME
------------------------------ ------------------------------ ------------------------------ ----------
PUBLIC X MDSYS OGC_X
PUBLIC Y MDSYS OGC_Y
Accidentalmente encontré que en Oracle SQL se puede emitir la siguiente declaración: select * from dual where x=1 or 1=1
.
- La columna en
dual
se llamadummy
y nox
. - Si selecciono de cualquier otra tabla, todavía funciona, devolviendo todas las filas.
-
select * from dual where y=1 or 1=1
también funciona. -
select * from dual where z=1 or 1=1
no funciona , dandoORA-00904: z: invalid identifier
. -
select * from dual where x=1
no funciona , dandoORA-06553: PLS-306: wrong number or types of arguments in call to ''OGC_X''
.
¿A qué se refieren y
?