0
制約名の競合を返すOracleでテーブルを作成します。私は、次のSQLを使用していますOracleでテーブルを作成しようとしています
CREATE TABLE SALES_TARGET(
SLS_REP_SK NUMBER(38, 0) NOT NULL,
MARKET_PRODUCT_HRCHY_SK NUMBER(38, 0) NOT NULL,
FISCAL_PERIOD VARCHAR2(6) NOT NULL
CONSTRAINT VALID_FISCAL_PERIOD CHECK (LENGTH(FISCAL_PERIOD) = 6 AND REGEXP_LIKE(FISCAL_PERIOD, '^\d*$') AND (SUBSTR(FISCAL_PERIOD, 1, 4) BETWEEN '2010' AND '2050') AND (TO_NUMBER(SUBSTR(FISCAL_PERIOD, 5, 2)) BETWEEN 1 and 12)),
CURR_SK NUMBER(38, 0) NOT NULL,
SALES_TARGET_AMT NUMBER(18, 5) NOT NULL
CONSTRAINT POSITIVE_SALES_TARGET CHECK (SALES_TARGET_AMT >= 0),
ETL_BATCH_ID NUMBER(38, 0) NOT NULL,
ETL_CREATED_LOAD_DT DATE NOT NULL,
ETL_MODIFIED_LOAD_DT DATE NOT NULL,
CONSTRAINT PK_SALES_TARGET PRIMARY KEY (SLS_REP_SK, MARKET_PRODUCT_HRCHY_SK, FISCAL_PERIOD)
USING INDEX
TABLESPACE DWH_NRM_INDEX
)
TABLESPACE DWH_NRM_DATA
;
それが原因制約名の競合に次のエラーを返して
Error report -
SQL Error: ORA-02264: name already used by an existing constraint
02264. 00000 - "name already used by an existing constraint"
*Cause: The specified constraint name has to be unique.
*Action: Specify a unique constraint name for the constraint.
他の質問のようなクエリを使用を示唆してきたように:これは戻っている
select * from ALL_constraints where constraint_name = 'PK_SALES_TARGET';
結果はありません(私は他の制約名で上記を試しましたが、問題はありません)。
誰も私が私の行方不明の制約を見つけることができますか?
あなたは他の制約を試してみましたか? PKを持っていないだけでなく、2つのチェック制約もあります。 – mathguy