テスト

  • 2025-09-18
  • 2025-11-19
  • 未分類
  • 60view
  • 0件
SELECT
    utc.column_id                             AS 列順,
    utc.column_name                           AS 列名,
    CASE
        WHEN pk.column_name IS NOT NULL THEN '○' -- 主キー
        ELSE ''
    END                                       AS 主キー,
    utc.data_type                             AS データ型,
    utc.data_length                           AS 長さ,
    utc.data_precision                        AS 整数部桁,
    utc.data_scale                            AS 少数部桁,
    CASE
        WHEN utc.nullable = 'N' THEN 'NOT NULL'
        ELSE ''
    END                                       AS "NOT NULL",
    utc.data_default                          AS 初期値,
    ucc.comments                              AS 備考
FROM
    user_tab_columns utc
    LEFT JOIN user_col_comments ucc
        ON utc.table_name  = ucc.table_name
       AND utc.column_name = ucc.column_name
    LEFT JOIN (
        SELECT
            acc.column_name
        FROM
            user_constraints  ac
            JOIN user_cons_columns acc
              ON ac.constraint_name = acc.constraint_name
        WHERE
            ac.table_name      = UPPER(:table_name)
        AND ac.constraint_type = 'P'  -- Primary Key(主キー)
    ) pk
        ON utc.column_name = pk.column_name
WHERE
    utc.table_name = UPPER(:table_name)
ORDER BY
    utc.column_id;
SELECT
    utc.column_id                             AS 列順,
    utc.column_name                           AS 列名,
    CASE
        WHEN pk.column_name IS NOT NULL THEN '○'   -- 主キー(PK:Primary Key)
        ELSE ''
    END                                       AS 主キー,
    utc.data_type                             AS データ型,
    utc.data_length                           AS 長さ,
    utc.data_precision                        AS 整数部桁,
    utc.data_scale                            AS 少数部桁,
    CASE
        WHEN utc.nullable = 'N' THEN 'NOT NULL'    -- NOT NULL 制約あり
        ELSE ''
    END                                       AS "NOT NULL",
    utc.data_default                          AS 初期値,
    ucc.comments                              AS 備考
FROM
    user_tab_columns utc
    LEFT JOIN user_col_comments ucc
        ON  utc.table_name  = ucc.table_name
        AND utc.column_name = ucc.column_name
    LEFT JOIN (
        SELECT
            acc.table_name,
            acc.column_name
        FROM
            user_constraints  ac
            JOIN user_cons_columns acc
              ON ac.constraint_name = acc.constraint_name
        WHERE
            ac.constraint_type = 'P'              -- P = Primary Key(主キー制約)
    ) pk
        ON  utc.table_name  = pk.table_name
        AND utc.column_name = pk.column_name
WHERE
    utc.table_name = 'CUSTOMER'   -- ★ここを対象テーブル名(大文字)に書き換える
ORDER BY
    utc.column_id;
SELECT
    atc.owner                                 AS スキーマ名,
    atc.table_name                            AS テーブル名,
    atc.column_id                             AS 列順,
    atc.column_name                           AS 列名,
    CASE
        WHEN pk.column_name IS NOT NULL THEN '○'   -- 主キー(PK:Primary Key)
        ELSE ''
    END                                       AS 主キー,
    atc.data_type                             AS データ型,
    atc.data_length                           AS 長さ,
    atc.data_precision                        AS 整数部桁,
    atc.data_scale                            AS 少数部桁,
    CASE
        WHEN atc.nullable = 'N' THEN 'NOT NULL'    -- NOT NULL 制約あり
        ELSE ''
    END                                       AS "NOT NULL",
    atc.data_default                          AS 初期値,
    acc.comments                              AS 備考
FROM
    all_tab_columns atc
    LEFT JOIN all_col_comments acc
        ON  atc.owner       = acc.owner
        AND atc.table_name  = acc.table_name
        AND atc.column_name = acc.column_name
    LEFT JOIN (
        SELECT
            acc.owner,
            acc.table_name,
            acc.column_name
        FROM
            all_constraints  ac
            JOIN all_cons_columns acc
              ON ac.owner           = acc.owner
             AND ac.constraint_name = acc.constraint_name
        WHERE
            ac.constraint_type = 'P'              -- P = Primary Key(主キー制約)
    ) pk
        ON  atc.owner       = pk.owner
        AND atc.table_name  = pk.table_name
        AND atc.column_name = pk.column_name
WHERE
    atc.owner      = 'APPUSER'   -- ★ここに対象スキーマ名(ユーザー名、大文字)を書く
AND atc.table_name = 'CUSTOMER'  -- ★ここに対象テーブル名(大文字)を書く
ORDER BY
    atc.owner,
    atc.table_name,
    atc.column_id;