首页 > 解决方案 > 使用定义的变量创建表

问题描述

我在 Oracle 的 SQL Developer 工作。我有一个简单的查询来根据 where 条件创建新表。我想生成具有如下定义变量的新表。我的代码不起作用。如何定义变量并将其直接用于查询而无需任何输入框?

DEFINE STARTDATE DATE:="TO_DATE('2021-06-01','YYYY-MM-DD')"

CREATE TABLE RESULTS AS
SELECT
*
FROM TABLE_1
WHERE DATA=ADD_MONTHS(:STARTDATE,2);

标签: sqloracle

解决方案


DEFINE创建一个替换变量。

:STARTDATE使用绑定变量,它不是替换变量。

&startdate将是一个替代变量。

你想要这样的东西:

DEFINE STARTDATE = "DATE '2021-06-01'"

CREATE TABLE RESULTS AS
SELECT *
FROM   TABLE_1
WHERE  DATA=ADD_MONTHS(&STARTDATE,2);

推荐阅读