Ben*_*der 3 sql oracle oracle11gr2
我正在尝试从名为Titles的现有表创建一个名为Titles2的新表.我必须使用SELECT AS语句从Titles中创建Titles2中的列.我还必须按RANGE分区Titles2,然后按LIST分区.
用于创建标题的代码:
SQL> CREATE TABLE Titles
2 (
3 Title_id char(3) ,
4 Title varchar2(40),
5 Genre varchar2(10),
6 Pages number ,
7 Price number(5,2) ,
8 Sales number ,
9 Pub_id char(3) ,
10 Pubdate date ,
11 Advance number(9,2) ,
12 Royalty_rate number(5,2) ,
13 CONSTRAINT Titles_pk PRIMARY KEY (title_id),
14 CONSTRAINT Titles_Publishers_fk FOREIGN KEY (Pub_id)
15 REFERENCES Publishers (pub_id)
16 )
17 PARTITION BY RANGE (Pubdate) (
18 PARTITION P1 VALUES LESS THAN (TO_DATE('01-JAN-1995', 'DD-MON-YYYY')) TABLESPACE TSLab8ben1,
19 PARTITION P2 VALUES LESS THAN (TO_DATE('01-JAN-2000', 'DD-MON-YYYY')) TABLESPACE TSLab8ben2,
20 PARTITION P3 VALUES LESS THAN (MAXVALUE) TABLESPACE TSLab8ben3
21 );
Table created.
Run Code Online (Sandbox Code Playgroud)
以下代码是我从标题创建Titles2表到目前为止的代码:
CREATE TABLE Titles2 AS
SELECT Title_id AS TID, Title, Genre, Sales, (Sales * Price) AS Revenue, Pub_id AS P#
FROM Titles
PARTITION BY RANGE (Revenue)
SUBPARTITION BY LIST (Genre)
SUBPARTITION TEMPLATE (
SUBPARTITION G1 VALUES ('history', 'biography'),
SUBPARTITION G2 VALUES ('computer','children'),
SUBPARTITION G3 VALUES (DEFAULT)) (
PARTITION P1 VALUES LESS THAN (100000),
PARTITION P2 VALUES LESS THAN (500000),
PARTITION P3 VALUES LESS THAN (1000000),
PARTITION P4 VALUES LESS THAN (MAXVALUE));
Run Code Online (Sandbox Code Playgroud)
但是,创建Titles2的代码不会执行.有人能帮助我执行Titles2代码吗?谢谢!
Nic*_*nov 10
Titles2使用just create table语句(而不是CTAS)创建表,使用适当的分区,就像使用它一样Titles.然后使用insertstatement来填充Titles2来自的数据Titles
insert into Titles2
select <<columns>>
from Titles
Run Code Online (Sandbox Code Playgroud)
或者您可以create table按如下方式重写上一个语句:
CREATE TABLE Titles2
PARTITION BY RANGE (Revenue)(
SUBPARTITION BY LIST (Genre)
SUBPARTITION TEMPLATE (
SUBPARTITION G1 VALUES ('history', 'biography'),
SUBPARTITION G2 VALUES ('computer','children'),
SUBPARTITION G3 VALUES (DEFAULT)) (
PARTITION P1 VALUES LESS THAN (100000),
PARTITION P2 VALUES LESS THAN (500000),
PARTITION P3 VALUES LESS THAN (1000000),
PARTITION P4 VALUES LESS THAN (MAXVALUE))
) AS
SELECT Title_id AS TID
, Title
, Genre
, Sales
, (Sales * Price) AS Revenue
, Pub_id AS P#
FROM Titles
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
31028 次 |
| 最近记录: |