![](/img/trans.png)
[英]How to create a table in Oracle 11g with the list of language codes based on util_i18n?
[英]How would I create a table in Oracle 11g R2 from a SELECT AS and partition the table by range-list?
我正在嘗試從一個名為Titles的現有表中創建一個名為Titles2的新表。 我必須使用SELECT AS語句從Titles在Titles2中創建列。 我還必須按RANGE然后按LIST對Titles2進行分區。
用於創建標題的代碼:
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.
到目前為止,以下代碼是我從Titles創建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));
但是,用於創建Titles2的代碼不會執行。 有人可以幫助我獲取Titles2代碼來執行嗎? 謝謝!
就像使用Titles
一樣,僅使用具有適當分區的create table
語句(而非CTAS)創建表Titles2
。 然后使用insert
語句用Titles
數據填充Titles2
insert into Titles2
select <<columns>>
from Titles
或者,您可以按如下方式重寫最后一個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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.