rink_rewさんの投稿一覧

助け合いフォーラムの投稿
2025/07/10 返信
親表の削除

外部キー制約で参照されている列の値の更新や行の削除については、ご認識の通りだと思いますが、「表自体の削除」は依存する行の有無に関わらずできないようです。

SQL> CREATE TABLE tbl_parent (
  2  deptno NUMBER(4) PRIMARY KEY,
  3  name VARCHAR2(10)
  4  );

表が作成されました。

SQL> CREATE TABLE tbl_child(
  2  empno NUMBER(4) PRIMARY KEY,
  3  name VARCHAR2(10),
  4  deptno NUMBER REFERENCES tbl_parent(deptno)
  5  );

表が作成されました。

SQL> DROP TABLE tbl_parent;
DROP TABLE tbl_parent
           *
行1でエラーが発生しました。:
ORA-02449: 表の一意キーまたは主キーが外部キーに参照されています。


SQL> 

この問題の「参考」にも以下の記載があります。

FOREIGN KEY制約の親表として指定された表は、参照されている行がない場合でも削除できなくなります。親表を削除したい場合は、FOREIGN KEY制約を定義した表を削除してから親表を削除します。

2025/06/24 返信
黒本ではスキーマ内でもオブジェクトの種類が違えば同じ名前は使えると記載されていたような、、、、

そうですね。私も同じ認識で、索引や制約など種類が違えば同じ名称が使えると思います。

↓みたいな話ですよね。

SQL> CREATE TABLE test_obj (
  2  id NUMBER PRIMARY KEY,
  3  name VARCHAR2(50)
  4  );

表が作成されました。

SQL> CREATE TABLE test_obj (
  2  id NUMBER 
  3  );
CREATE TABLE test_obj (
             *
行1でエラーが発生しました。:
ORA-00955: すでに使用されているオブジェクト名です。

-> 同じ名称の表は作成できない。

SQL> CREATE VIEW test_obj AS
  2  SELECT * FROM dual;
SELECT * FROM dual
              *
行2でエラーが発生しました。:
ORA-00955: すでに使用されているオブジェクト名です。

-> ビューもダメ

SQL> CREATE INDEX test_obj ON test_obj(name);

索引が作成されました。

SQL> SELECT OBJECT_NAME, OBJECT_TYPE
  2  FROM USER_OBJECTS
  3  WHERE OBJECT_NAME = 'TEST_OBJ';

OBJECT_NAME
--------------------------------------------------------------------------------
OBJECT_TYPE
-----------------------
TEST_OBJ
TABLE

TEST_OBJ
INDEX

SQL>

-> すでに存在する表「test_obj」と同じ名称の索引が作成できる

2025/06/17 返信
正解の選択肢ミスでは?

INDEXオブジェクト権限もALTERオブジェクト権限もあると思います。

SQL言語リファレンス
https://docs.oracle.com/cd/F19136_01/sqlrf/GRANT.html#GUID-20B4E2C0-A7F8-4BC8-A5E8-BE61BDC41AC3__BGBCIIEG

2025/06/12 返信
ローカル管理についての解説文

以下の理解で合っているでしょうか?
「自動セグメント領域管理(ASSM)」は、セグメント内の空き領域をビットマップで管理する方式です。
一方、「ローカル管理表領域(LMT)」もビットマップを使用しますが、これはエクステントの割り当て情報の管理に使われるものであり、セグメント内の空き領域の管理方法とは異なります。

そうですね。その理解で良いと思います。

  • 自動セグメント領域管理
    -> セグメントの領域管理
  • 表領域のローカル管理
    -> エクステントの割り当て情報管理
2025/06/10 コメント
回答を正とすると問題文が正しくない?
> 質問内容にある"Flash版のEM Express"というのは、どういう意味でしょうか…? 「参考」の「■Oracle JET版のEM Express」と「■Flash版のEM Express」の部分に説明が記載されていますので読んでみると良いと思います。 > 11g時代のFlash UIの、"EM Expressの前身的な、昔のEnterprise Manager Database Control "」 「EM Express」という表現は「Enterprise Manager Database Express」を指しており、この「EM Express」には「Flash版」と「JET版」があります。 「EM ExpressのFlash版」と「EM ExpressのJET版」では機能に差がありますが、いずれの場合もデータベースの起動・停止やデータベースのバックアップ・リカバリはできません。 > 「11g時代のFlash UIの、"EM Expressの前身的な、昔のEnterprise Manager Database Control "」だと理解したので、 「Enterprise Manager Database Express」(EM Express)とは別に、昔、「Enterprise Manager Database Control」という管理ツールが存在していました。この「Enterprise Manager Database Control」を、私は先のコメントで「EM Expressの前身的な」と表現しました。そしてこの「Enterprise Manager Database Control」では、データベースの起動などもできたような気がしたので、そのようにコメントした次第です。 なんにせよ、本設問: 29629の問題文には「ただし、Flash版のEM Expressとします。 」と記載があります。従って、 - データベースの起動と停止 - バックアップとリカバリ は行えない、という判断ができると思います。
合格体験記の投稿
投稿がありません