尝试使用 && 替换变量时标识符错误 ORA-00904 无效



我使用以下代码定义了几个替换变量

Select '&&my_name' "my name", '&&my_birthday' "date born" from dual;

我想在 select 语句的后续调用中使用 date_born 变量,但不断收到 ORA-00904 错误。以下是我正在尝试的代码:

Select '&&my_name' "my name", '&&my_birthday' "date born", TO_DATE("date born") from dual;

Select '&&my_name' "my name", '&&my_birthday' "date born", TO_DATE(my_birthday) from dual;

有什么想法吗?我一定错误地定义或调用变量或列。

DUAL 没有"date born"列。

试试这个:

with demo (my_name, date_born) as
( select '&&my_name', '&&my_birthday' from dual )
select my_name, to_date(date_born)
from   demo;

或者这个

select my_name, to_date(date_born)
from   ( select '&&my_name' as my_name, '&&my_birthday' as date_born from dual );

我使用了标准命名,而不是重复引用所有内容。

to_date(date_born)日期格式和语言恰好与您的会话默认值相匹配,这有点像赌博。我更愿意指定日期格式,例如确保'&&my_birthday'格式为YYYY-MM-DD然后

select '&&my_name' as my_name, date '&&my_birthday' as date_born from dual;

编辑:或者,正如 lad2025 指出的那样,由于您正在使用&&因此您可以在同一语句中多次使用相同的变量。

最新更新