问题描述
在尝试使用函数的输出创建变量时,所需的值不会存储在变量中。我了解define语句存储字符值,因此请您建议是否可以实现。
例如: 定义VARNAME = TO_CHAR(SYSDATE,'YYYYMMDD');
我们需要VARNAME应该有价值作为20180315
这将用于引用存储为TBL_20180318的表
例如:
从TBL _ & VARNAME中选择 *。
例如: 定义VARNAME = TO_CHAR(SYSDATE,'YYYYMMDD');
我们需要VARNAME应该有价值作为20180315
这将用于引用存储为TBL_20180318的表
例如:
从TBL _ & VARNAME中选择 *。
专家解答
您定义的值取 “按现状”:
这不会执行函数。所以当你运行:
这变成:
要执行该函数,您需要将其选择到替换变量中。你可以通过定义一个列的new_value,像这样:
现在它存储20180315的值,所以你可以用它来替换你的表名:
SQL> DEFINE VARNAME=TO_CHAR(SYSDATE,'YYYYMMDD'); SQL> DEFINE VARNAME DEFINE VARNAME = "TO_CHAR(SYSDATE,'YYYYMMDD')" (CHAR)
这不会执行函数。所以当你运行:
SQL> select * from TBL_&VARNAME;
这变成:
select * from TBL_TO_CHAR(SYSDATE,'YYYYMMDD')
要执行该函数,您需要将其选择到替换变量中。你可以通过定义一个列的new_value,像这样:
SQL> col dt new_value today SQL> select to_char(sysdate, 'YYYYMMDD') dt from dual; DT 20180315 SQL> define today DEFINE TODAY = "20180315" (CHAR)
现在它存储20180315的值,所以你可以用它来替换你的表名:
SQL> create table t_20180315 ( x int );
Table T_20180315 created.
SQL> select count(*) from "T_&TODAY";
old:select count(*) from "T_&TODAY"
new:select count(*) from "T_20180315"
COUNT(*)
0 「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




