在一个语句中创建多个表

时间:2014-05-16 01:56:10

标签: sql oracle

我想在Oracle上进行多次查询,如下所示:

CREATE TABLE CLIENTE  AS
   (SELECT (ID, NOMBRECLIENTE, NIT_CLIENTE,SEXO,EDAD,TELEFONO,DIR_CLIENTE)
    FROM RESTAURANT)

CREATE TABLE COMPRAS  AS
   (SELECT (ID, NOMBRECLIENTE, NIT_CLIENTE,SEXO,EDAD,TELEFONO,DIR_CLIENTE)
    FROM RESTAURANT)

CREATE TABLE HORARIO  AS
   (SELECT (ID, NOMBRECLIENTE, NIT_CLIENTE,SEXO,EDAD,TELEFONO,DIR_CLIENTE)
    FROM RESTAURANT)

但在一个查询句子中。

2 个答案:

答案 0 :(得分:3)

您的代码非常接近工作,只需添加CREATE SCHEMA

CREATE SCHEMA AUTHORIZATION JHELLER --schema name must be hard-coded
    CREATE TABLE CLIENTE  AS
       (SELECT ID, NOMBRECLIENTE, NIT_CLIENTE,SEXO,EDAD,TELEFONO,DIR_CLIENTE
        FROM RESTAURANT)
    CREATE TABLE COMPRAS  AS
       (SELECT ID, NOMBRECLIENTE, NIT_CLIENTE,SEXO,EDAD,TELEFONO,DIR_CLIENTE
        FROM RESTAURANT)
    CREATE TABLE HORARIO  AS
       (SELECT ID, NOMBRECLIENTE, NIT_CLIENTE,SEXO,EDAD,TELEFONO,DIR_CLIENTE
        FROM RESTAURANT);

组合语句通常是提高性能和清晰度的好方法。但在这种情况下,最好将每个CREATE TABLE作为单独的陈述。

答案 1 :(得分:1)

这是你在找什么?

CREATE TABLE CLIENTE  AS
   SELECT ID, NOMBRECLIENTE, NIT_CLIENTE,SEXO,EDAD,TELEFONO,DIR_CLIENTE
   FROM RESTAURANT
   union all
   SELECT ID, NOMBRECLIENTE, NIT_CLIENTE,SEXO,EDAD,TELEFONO,DIR_CLIENTE
   FROM RESTAURANT
   union all
   SELECT ID, NOMBRECLIENTE, NIT_CLIENTE,SEXO,EDAD,TELEFONO,DIR_CLIENTE
   FROM RESTAURANT;