我使用以下代码来定义一对替换变量
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;
有什么想法吗?我必须错误地定义或调用变量或列。
答案 0 :(得分:2)
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指出的那样,因为您使用&&
,所以您可以在同一语句中多次使用相同的变量。