首页 > 解决方案 > 定义一个变量作为查询的结果

问题描述

我有一个date_from可以在查询中使用的变量:

define date_from = '01.11.2019'; 

是否可以定义一个新变量作为查询的结果?以下语句不起作用:

define month_from = (select month_yyyymm from t_calendar where date_orig = '&date_from'); 

我正在使用 Oracle SQL Developer,我不想进入 PL/SQL。

标签: sqloracle

解决方案


不可能直接做你想做的事。另请注意,替换变量(使用define命令创建/分配并使用前导调用的变量&)是 SQL*Plus 概念;它们由客户端软件进行预处理(在您的情况下是 SQL Developer,它理解并尊重大部分(即使不是全部)SQL*Plus)。

不过,您几乎可以使用new_value该命令的 SQL*Plus 选项来做到这一点column。它是这样的(由于您没有提供示例数据,因此未测试):

define date_from = '01.11.2019'
column month_yyyymm new_value month_from
select month_yyyymm from t_calendar where date_orig = '&date_from';

就是这样 - 此时变量month_from存储month_yyyymm查询返回的值。请注意,前两个命令是 SQL*Plus(脚本)命令;select数据库本身只看到最后一条语句 , 。


推荐阅读