Можно ли создать столбцы таблицы, скопировав тип данных из другого столбца? (например,% введите Oracle) - PullRequest
1 голос
/ 12 марта 2020

Например, это возможно в Oracle. Я хотел знать, есть ли у снежинки похожая концепция.

CREATE TABLE Purchases
(
     purchase_date           calendar.date%type,
     customer_nr             customer.customer_nr%type,
     purchase_amount         numeric(10,2)
) 

Ответы [ 2 ]

1 голос
/ 12 марта 2020

Боюсь, что сейчас нет возможности сделать это. Вы можете использовать system $ typeof для проверки типа столбца, но его нельзя использовать в операторе создания таблицы.

0 голосов
/ 14 марта 2020

Ссылка в вашем примере недоступна. Вы можете создать таблицу, соединив одну или несколько таблиц и / или представлений вместе и составив список столбцов со столбцами из любых объединений и любых, которые вы явно добавили в список. Ключ заключается в том, чтобы присоединиться к 1 = 2 или FALSE

Пример

CREATE OR REPLACE TEMP TABLE TMP_X
AS
SELECT A."name" AS NAME  
    ,A."owner" AS OWNER
    ,B.STG_ARRAY 
    ,NULL::NUMERIC(10,2) AS PURCHASE_AMOUNT 
    ,NULL AS COMMENT 
FROM TABLE_A A
    JOIN TABLE_B B
        ON 1 = 2
;
  • NAME - берет тип данных из столбца A. "name"
  • OWNER - получает тип данных из столбца A. «владелец»
  • STG_ARRAY - принимает тип данных из столбца B.STG_ARRAY
  • PURCHASE_AMOUNT - принимает тип данных, явно указанный NUMERI C (10,2)
  • КОММЕНТАРИЙ - без явного типа данных - принимает тип данных по умолчанию VARCHAR (16777216)
...