【发布时间】:2016-10-27 17:35:49
【问题描述】:
我正在尝试创建 1 个 PL/SQL 语句,它允许我在每次连续的日期时间迭代后获得多个表输出,并用该日期时间迭代的年份重命名每个表。下面的示例具有所需的结果。谢谢
Create table MY_TIME_XX AS
( Select
X.*
FROM Metadata X )
Where X.Datetime between '01/01/2014' and '12/31/2014'
所以最后我的架构会有
- MY_TIME_14
- MY_TIME_15
- MY_TIME_16
等等……
【问题讨论】:
-
你为什么喜欢这样做?很可能它没有任何意义。
-
(Select * FROM Metadata X)不仅仅是我展示的五年跨度,它也相当大。我的临时文件保存得不好所以我想每年都做一个,然后把它放到一个分区单表中。
-
不要在日期比较中使用字符串文字,使用日期文字或 to_date 函数:例如使用
to_date('01/01/2014','mm/dd/yyyy')或date '2014-1-1'而不是'01/01/2014' -
为什么不首先创建分区表。您仍然可以一次插入一年的数据,而不是一次插入所有数据。
-
不明白想要做的逻辑。但不会很难做到。看看docs.oracle.com/cd/B19306_01/appdev.../…。只需将您的 create table 语句构建为字符串,然后使用 execute immediate 将其关闭。