[ORACLE] Question création table

Question création table [ORACLE] - SQL/NoSQL - Programmation

Marsh Posté le 24-07-2008 à 10:42:38    

Bonjour,
 
J'ai une question : Est-il possible de crée une table en prenant plusieurs champs de plusieurs tables, genre :  
 

Code :
  1. CREATE TABLE tmp_export_profils_delta_port
  2. AS
  3. (
  4. SELECT tmp4.name_prefix,
  5.        tmp4.cfa,
  6.        tmp4.pin_number,
  7.        tmp4.name_suffix,
  8.        tmp4.dob,
  9.        tmp4.verified_flag,
  10.        tmp4.start_travel_date,
  11.        tmp4.end_travel_date,
  12.        tmp4.home_appart_code,
  13.        tmp4.home_city_code,
  14.        tmp4.pin_mailer_sent,
  15.        tmp4.is_arranger_flag,
  16.        tmp4.vendor_group,
  17.        tmp4.vendor_code,
  18.        tmp4.membership_number,
  19.        tmp4.address_type_code,
  20.        tmp4.first_address_line_desc,
  21.        tmp4.second_address_line_desc,
  22.        tmp4.state_province_code,
  23.        tmp4.state_province_name,
  24.        tmp4.country_name,
  25.        tmp4.traveler_corp_discount_number,
  26.        tmp4.vendor_discount_discgroup,
  27.        tmp4.vendor_code1,
  28.        tmp4.expiration_date1,
  29.        tmp2.credit_card_vendor_code,
  30.        tmp2.credit_card_description,
  31.        tmp2.credit_card_number,
  32.        tmp2.expiration_date,
  33.        tmp2.preferred_hotel_guarantee_flag,
  34.        tmp2.preferred_for_air_flag,
  35.        tmp2.preferred_car_guarantee_flag,
  36.        tmp3.personal_email,
  37.        tmp3.alternate_email,
  38.        tmp3.country,
  39.        --tmp3.state_province_code,
  40.        tmp3.state,
  41.        tmp3.code_entite,
  42.        tmp3.matricule,
  43.        tmp3.matricule1,
  44.        tmp3.secretaire,
  45.        tmp1.BUS_TRAVELER_ROLLUP_TYPE_DESC,
  46.        tmp1.ARRANGER_FIRST_NAME,
  47.        tmp1.ARRANGER_LAST_NAME,
  48.        tmp1.ARRANGER_PHONE,
  49.        tmp1.ARRANGER_EMAIL,
  50.        tmp1.RECEIVE_E_INVOICE_FLAG,
  51.        tmp1.EMAIL_TYPE,
  52.        tmp1.PRIVACY_OPTION_ACCEPTANCE_FLAG,
  53.        tmp1.CLIENT_ORG_UNIT_ID
  54.      
  55.        from tmp_export_profils_portrait4 tmp4, tmp_export_profils_portrait3 tmp3, tmp_export_profils_portrait2 tmp2,
  56.        tmp_export_profils_portrait tmp1);
  57.        commit;


 
Mais là j'ai une erreur oracle => ORA-01652
 
ou alors dupliquer une table et faire un alter table du style :
 

Code :
  1. ALTER TABLE tmp_export_profils_delta_port
  2.    ADD (select tmp3.personal_email FROM tmp_export_profils_portrait3);


 
Même si je sais que cette requête est fausse, mais c'est plus dans l'esprit.
 
Merci

Reply

Marsh Posté le 24-07-2008 à 10:42:38   

Reply

Marsh Posté le 24-07-2008 à 13:03:01    

Au lieu de :

CREATE TABLE tmp_export_profils_delta_port
AS
(
SELECT tmp4.name_prefix,
....

Essayer :

INSERT INTO tmp_export_profils_delta_port
   SELECT tmp4.name_prefix,
   ....


Message édité par olivthill le 24-07-2008 à 13:03:25
Reply

Marsh Posté le 24-07-2008 à 13:31:39    

plutôt :
 
create view tmp_export_profils_delta_port  
as select ...
 
c'est plus propre et c'est fait pour.

Reply

Marsh Posté le 24-07-2008 à 14:06:07    

Merci :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed