iは、オラクルOracleでデータ・ディクショナリをリフレッシュする方法は?
DROP TABLE hr.admin_emp CASCADE CONSTRAINTS;
に私のテーブルの一部を削除したが、削除されたテーブルの主キー制約は、データ・ディクショナリ(ALL_CONSTRAINTS)のままです。今私の質問は、削除されたテーブルの主キーを表示しないようにデータ辞書を更新する方法ですか?
SELECT A.TABLE_NAME,A.COLUMN_NAME,A.CONSTRAINT_NAME FROM ALL_CONS_COLUMNS A, ALL_CONSTRAINTS B WHERE B.OWNER='HR' AND A.OWNER='HR'AND A.CONSTRAINT_NAME = B.CONSTRAINT_NAME AND B.constraint_type='P';
と結果は次のとおりです:たとえば、私は、hrスキーマを選択するには、このクエリを使用する奇妙な表名で
REGIONS REGION_ID
COUNTRIES COUNTRY_ID
LOCATIONS LOCATION_ID
DEPARTMENTS DEPARTMENT_ID
JOBS JOB_ID
EMPLOYEES EMPLOYEE_ID
JOB_HISTORY EMPLOYEE_ID
JOB_HISTORY START_DATE
BIN$rRfAMUTnQROvBfuhBCT6RQ==$0 ID
BIN$87Rd5FE7Rj2eQbim0H2EzA==$0 PK_B
BIN$bQeeD0M/QMSpLzYjZqAGeA==$0 PK_A
BIN$RzMu6nZiQ2yuj+4xQf7eAQ==$0 PK_A
行私は削除していたものです。
"*ただし、削除されたテーブルの主キー制約はまだデータ辞書*にあります。" - 私はそれを信じていません。同じユーザーの制約ですか?この点を証明すると思われるSELECTステートメントの出力を表示できますか? –
** DML文を使用してデータ・ディクショナリからデータを削除することはありません**。これらはビューであり、sysビューとテーブルに構築され、その中のデータはデータベースの現在の状態を反映するように更新されます。 – vishad
私はデータ辞書からデータを削除しませんでした。私はいくつかのテーブルを削除しましたが、データ辞書にはまだドロップされたテーブルの制約があります! –