Précédent   Forum des professionnels en informatique > Bases de données > Oracle > Administration
Administration Forum d'entraide sur l'administration du serveur Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/12/2011, 08h50   #1
Futur Membre du Club
 
Inscription : septembre 2011
Messages : 51
Détails du profil
Informations forums :
Inscription : septembre 2011
Messages : 51
Points : 15
Points : 15
Bonjour,

Je souhaiterai créer une table partitionnée à partir du modèle d'une autre table. En lisant la documentation Oracle au sujet des CREATE TABLE et du partionnement, j'ai vu qu'il n'était pas possible de faire une requête de ce genre :
Code :
1
2
3
4
5
6
7
CREATE TABLE table1 
AS SELECT * FROM table2
PARTITION BY RANGE (col_date)
INTERVAL (numtodsinterval(7,'DAY'))
(
PARTITION part_week_0 VALUES LESS THAN (date '2012-01-01')
)
Auriez-vous un moyen de contourner ce problème ?

Je souhaiterai aussi pouvoir effacer automatiquement une partition de plus d'un mois de manière automatique. Suis-je obligé de créer un job pour faire cette action ?

merci d'avance

Petite précision, je ne veux que la structure de la table et pas les données à l'intérieur. Actuellement, je fais un classique CTAS puis un TRUNCATE pour ensuite remplir ma table non partionnée.
alex_972 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2011, 13h39   #2
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 686
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 686
Points : 10 435
Points : 10 435
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
Deux choses :
  1. Le SELECT vient après la déclaration de la table
  2. L'argument WEEK n'est pas autorisé dans la fonction numtoyminterval
__________________
Email : http://scr.im/waldar
Waldar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2011, 14h54   #3
Futur Membre du Club
 
Inscription : septembre 2011
Messages : 51
Détails du profil
Informations forums :
Inscription : septembre 2011
Messages : 51
Points : 15
Points : 15
Merci Waldar.

En effet, la fonction n'allait pas fonctionner, c'était plus pour montrer ce que je voulais faire. Je l'ai rectifié.

Merci pour la syntaxe en effet cela fonctionne mieux si le Select est après.

Sinon, aurais-tu une idée pour la suppression de mes partitions de façon cyclique ?
alex_972 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2011, 15h36   #4
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 686
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 686
Points : 10 435
Points : 10 435
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
Pour simplement obtenir la définition de la table sans les données, c'est très simple :
Code :
SELECT * FROM table2 WHERE 1 = 0;
Un job pour dropper les anciennes partitions me parait tout à fait correct : on peut récupérer le high_value de la partition (attention la colonne est de type LONG) et le comparer avec la date du jour par exemple.

Attention toutefois aux corrélations entre les mois et les semaines.
__________________
Email : http://scr.im/waldar
Waldar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2011, 16h05   #5
Futur Membre du Club
 
Inscription : septembre 2011
Messages : 51
Détails du profil
Informations forums :
Inscription : septembre 2011
Messages : 51
Points : 15
Points : 15
Merci Waldar pour les conseils. 1=0, j'aurais du y penser !

Dernière question, y a t il une requête spécifique pour effacer complément une table partitionnée ou un simple "DROP TABLE table" efface tout ?

(Je pose la question car après avoir effacer mes tables de test, je vois tout un tas d'informations ici :
Code :
1
2
3
SELECT * FROM user_part_tables;
SELECT * FROM user_tab_partitions;
)
alex_972 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h18.


 
 
 
 
Partenaires

Hébergement Web