■SI Object Browser 掲示板
|
ユーザの皆様、開発者、サポート担当者の交流のための掲示板です! ユーザーの皆様同士で教え合ったりもできる交流の場にしたいと思っていますので、相互協力をよろしくお願いします。 なお、過去に同じようなQ&Aがあるケースも多いので、投稿前にキーワード検索してみてください。 |
|
| ※各投稿のカラーは対象となる製品に対応しています。【■…OB ■…OBER ■…全般 ■…その他】 ※ライセンスに関するお問合せにつきましては、お問い合わせページよりご連絡いただきますようお願いいたします。 ※誹謗中傷や公序良俗に反する書き込みはご遠慮ください。運営側の判断によりメッセージを削除する場合があります。 ※環境依存や技術的調査が必要な問題については掲示板上ではお答えしかねます。ご了承ください。 | |
Oracle 列追加後コンパイルするとエラーが発生する。
2022/02/20 11:41
OB
4
キジメマ
同一名称でPRIMAREY KEY作成後に以下のSQL文が流れるのが問題だと思います。
確認お願いします。
CREATE UNIQUE INDEX "PK_L_TABLE"
ON "L_TABLE"
("LogId")
PCTFREE **
INITRANS **
MAXTRANS **
TABLESPACE "*******"
STORAGE(INITIAL **K NEXT 1M MINEXTENTS ** MAXEXTENTS ** BUFFER_POOL DEFAULT)
LOGGING
VISIBLE
《エラー》
ORA-00955: すでに使用されているオブジェクト名です。
OBの製品名 :SI Object Browser for Oracle 21
OBバージョン :21.2.0.0
OBエディション :通常版
OBのビット数 :64ビット
OBのパス :c:\program files\obo21\obo.exe
【OS情報】
OS名 :Windows Server 2019
OSのビット数 :64ビット
【Oracle Client情報】
OCI.dllのビット数 :64ビット
OCI.dllのバージョン :19.3.0.0
確認お願いします。
CREATE UNIQUE INDEX "PK_L_TABLE"
ON "L_TABLE"
("LogId")
PCTFREE **
INITRANS **
MAXTRANS **
TABLESPACE "*******"
STORAGE(INITIAL **K NEXT 1M MINEXTENTS ** MAXEXTENTS ** BUFFER_POOL DEFAULT)
LOGGING
VISIBLE
《エラー》
ORA-00955: すでに使用されているオブジェクト名です。
OBの製品名 :SI Object Browser for Oracle 21
OBバージョン :21.2.0.0
OBエディション :通常版
OBのビット数 :64ビット
OBのパス :c:\program files\obo21\obo.exe
【OS情報】
OS名 :Windows Server 2019
OSのビット数 :64ビット
【Oracle Client情報】
OCI.dllのビット数 :64ビット
OCI.dllのバージョン :19.3.0.0
返信を投稿
OB
OBサポート
OBサポートです。
お問い合わせ頂い事象につきまして、
弊社環境での再現ができませんでした。
つきましては、下記事項の確認と追加の情報提供をお願いできますでしょうか。
■既存のUNIQUEインデックスの確認
Oracleでは主キー(PRIMARY KEY)の作成と同時に、同名のインデックス(UNIQU INDEX)が作成されます。
今回作成した主キーと同名のインデックスが既に存在してないかどうか、ご確認をお願いできますでしょうか。
■情報提供のお願い
前述の通り、弊社環境での再現が行えなかったため、
実際に事象が再現した際の
・操作手順
どの画面でどのような操作をしたか、など
・テーブル定義
主キー、インデックスの情報
大変お手数ですが、何卒よろしくお願い申し上げます。
お問い合わせ頂い事象につきまして、
弊社環境での再現ができませんでした。
つきましては、下記事項の確認と追加の情報提供をお願いできますでしょうか。
■既存のUNIQUEインデックスの確認
Oracleでは主キー(PRIMARY KEY)の作成と同時に、同名のインデックス(UNIQU INDEX)が作成されます。
今回作成した主キーと同名のインデックスが既に存在してないかどうか、ご確認をお願いできますでしょうか。
■情報提供のお願い
前述の通り、弊社環境での再現が行えなかったため、
実際に事象が再現した際の
・操作手順
どの画面でどのような操作をしたか、など
・テーブル定義
主キー、インデックスの情報
大変お手数ですが、何卒よろしくお願い申し上げます。
返信を投稿
OB
キジメマ
返信ありがとうございます。
こちらの方法で再現できるかと思いますので、ご確認をお願いできますでしょうか。
まず、以下のテーブルが存在します。
CREATE TABLE "TEST_SPACE"."testTable"
(
"Test1" NVARCHAR2(100) NOT NULL,
"Test2" NVARCHAR2(100),
"Test99" NVARCHAR2(100),
"Test3" NVARCHAR2(100),
"Test4" NVARCHAR2(100),
CONSTRAINT "PK" PRIMARY KEY ("Test1") USING INDEX
PCTFREE 10
INITRANS 2
MAXTRANS 255
TABLESPACE "TEST_SPACE"
STORAGE(INITIAL 64K NEXT 1M MINEXTENTS 1 MAXEXTENTS 2147483645 BUFFER_POOL DEFAULT)
LOGGING
ENABLE
)
PCTFREE 10
MAXTRANS 255
TABLESPACE "TEST_SPACE"
STORAGE(INITIAL 64K NEXT 1M MINEXTENTS 1 MAXEXTENTS 2147483645 BUFFER_POOL DEFAULT)
NOCACHE
LOGGING
/
COMMENT ON TABLE "TEST_SPACE"."testTable" IS 'test'
/
以下、エラーが発生する場合の操作手順になります。
1.上記テーブルを開き、定義情報タブを選択
2.列の途中(3カラム目)にカラムを追加 NVARCHAR(100) ※特にNotNull制約はつけていません。
3.作成ボタンのクリック
4.エラー発生
その際に表示されるメッセージとしては、このようなものでした。
CREATE TABLE "TEST_SPACE"."testTable_0221143120"
AS SELECT * FROM "TEST_SPACE"."testTable"
《正常終了》
DROP TABLE "TEST_SPACE"."testTable" CASCADE CONSTRAINTS
《正常終了》
CREATE TABLE "TEST_SPACE"."testTable"
(
"Test1" NVARCHAR2(100) NOT NULL,
"Test2" NVARCHAR2(100),
"Test99" NVARCHAR2(100),
"Test3" NVARCHAR2(100),
"Test4" NVARCHAR2(100),
CONSTRAINT "PK" PRIMARY KEY ("Test1") USING INDEX
PCTFREE 10
INITRANS 2
MAXTRANS 255
TABLESPACE "TEST_SPACE"
STORAGE(INITIAL 64K NEXT 1M MINEXTENTS 1 MAXEXTENTS 2147483645 BUFFER_POOL DEFAULT)
LOGGING
ENABLE
)
PCTFREE 10
MAXTRANS 255
TABLESPACE "TEST_SPACE"
STORAGE(INITIAL 64K NEXT 1M MINEXTENTS 1 MAXEXTENTS 2147483645 BUFFER_POOL DEFAULT)
NOCACHE
LOGGING
《正常終了》
COMMENT ON TABLE "TEST_SPACE"."testTable" IS 'test'
《正常終了》
INSERT INTO "TEST_SPACE"."testTable"
("Test1", "Test2", "Test3", "Test4")
SELECT "Test1", "Test2", "Test3", "Test4" FROM "TEST_SPACE"."testTable_0221143120"
《正常終了》
COMMIT
《正常終了》
CREATE UNIQUE INDEX "PK"
ON "testTable"
("Test1")
PCTFREE 10
INITRANS 2
MAXTRANS 255
TABLESPACE "TEST_SPACE"
STORAGE(INITIAL 64K NEXT 1M MINEXTENTS 1 MAXEXTENTS 2147483645 BUFFER_POOL DEFAULT)
LOGGING
VISIBLE
《エラー》
ORA-00955: すでに使用されているオブジェクト名です。
以上になります。ご確認よろしくお願いいたします。
こちらの方法で再現できるかと思いますので、ご確認をお願いできますでしょうか。
まず、以下のテーブルが存在します。
CREATE TABLE "TEST_SPACE"."testTable"
(
"Test1" NVARCHAR2(100) NOT NULL,
"Test2" NVARCHAR2(100),
"Test99" NVARCHAR2(100),
"Test3" NVARCHAR2(100),
"Test4" NVARCHAR2(100),
CONSTRAINT "PK" PRIMARY KEY ("Test1") USING INDEX
PCTFREE 10
INITRANS 2
MAXTRANS 255
TABLESPACE "TEST_SPACE"
STORAGE(INITIAL 64K NEXT 1M MINEXTENTS 1 MAXEXTENTS 2147483645 BUFFER_POOL DEFAULT)
LOGGING
ENABLE
)
PCTFREE 10
MAXTRANS 255
TABLESPACE "TEST_SPACE"
STORAGE(INITIAL 64K NEXT 1M MINEXTENTS 1 MAXEXTENTS 2147483645 BUFFER_POOL DEFAULT)
NOCACHE
LOGGING
/
COMMENT ON TABLE "TEST_SPACE"."testTable" IS 'test'
/
以下、エラーが発生する場合の操作手順になります。
1.上記テーブルを開き、定義情報タブを選択
2.列の途中(3カラム目)にカラムを追加 NVARCHAR(100) ※特にNotNull制約はつけていません。
3.作成ボタンのクリック
4.エラー発生
その際に表示されるメッセージとしては、このようなものでした。
CREATE TABLE "TEST_SPACE"."testTable_0221143120"
AS SELECT * FROM "TEST_SPACE"."testTable"
《正常終了》
DROP TABLE "TEST_SPACE"."testTable" CASCADE CONSTRAINTS
《正常終了》
CREATE TABLE "TEST_SPACE"."testTable"
(
"Test1" NVARCHAR2(100) NOT NULL,
"Test2" NVARCHAR2(100),
"Test99" NVARCHAR2(100),
"Test3" NVARCHAR2(100),
"Test4" NVARCHAR2(100),
CONSTRAINT "PK" PRIMARY KEY ("Test1") USING INDEX
PCTFREE 10
INITRANS 2
MAXTRANS 255
TABLESPACE "TEST_SPACE"
STORAGE(INITIAL 64K NEXT 1M MINEXTENTS 1 MAXEXTENTS 2147483645 BUFFER_POOL DEFAULT)
LOGGING
ENABLE
)
PCTFREE 10
MAXTRANS 255
TABLESPACE "TEST_SPACE"
STORAGE(INITIAL 64K NEXT 1M MINEXTENTS 1 MAXEXTENTS 2147483645 BUFFER_POOL DEFAULT)
NOCACHE
LOGGING
《正常終了》
COMMENT ON TABLE "TEST_SPACE"."testTable" IS 'test'
《正常終了》
INSERT INTO "TEST_SPACE"."testTable"
("Test1", "Test2", "Test3", "Test4")
SELECT "Test1", "Test2", "Test3", "Test4" FROM "TEST_SPACE"."testTable_0221143120"
《正常終了》
COMMIT
《正常終了》
CREATE UNIQUE INDEX "PK"
ON "testTable"
("Test1")
PCTFREE 10
INITRANS 2
MAXTRANS 255
TABLESPACE "TEST_SPACE"
STORAGE(INITIAL 64K NEXT 1M MINEXTENTS 1 MAXEXTENTS 2147483645 BUFFER_POOL DEFAULT)
LOGGING
VISIBLE
《エラー》
ORA-00955: すでに使用されているオブジェクト名です。
以上になります。ご確認よろしくお願いいたします。
返信を投稿
OB
OBサポート
OBサポートです。
詳細な情報提供、誠にありがとうございます。
ご提示いただいた手順にて、弊社でも事象の再現を致しました。
■原因
ご指摘いただいた通り、既に存在するユニークインデックスを再度作成するような動作が
ver.19.0.1.0の修正の考慮不足により発生しておりました。
【詳細な原因】
ver.19.0.1.0の修正時に、小文字のオブジェクト、カラム名などの条件が漏れており、
大文字小文字を区別するダブルクウォート("")で囲まれた主キーが作成された際には、
テーブル再作成時に余分なインデックス作成のクエリが流れることが確認されました。
本事象は、現状内部動作の不具合となるため、
ダブルクウォートを利用した主キーを利用したテーブルについて
定義情報タブからのテーブル再作成を行った際の回避が困難な事象となります。
誠に恐れ入りますが、
「実行」ボタン押下後のダイアログで表示されるクエリに対して、
ユニークインデックス再作成の処理は除き、別途SQL実行画面より再作成いただく方法にて回避をお願いできますでしょうか。
大変ご不便、ご迷惑をおかけしてしまい、誠に申し訳ありません。
本件につきましては、
早急な修正を検討させていただきます。
何卒よろしくお願い申し上げます。
詳細な情報提供、誠にありがとうございます。
ご提示いただいた手順にて、弊社でも事象の再現を致しました。
■原因
ご指摘いただいた通り、既に存在するユニークインデックスを再度作成するような動作が
ver.19.0.1.0の修正の考慮不足により発生しておりました。
【詳細な原因】
ver.19.0.1.0の修正時に、小文字のオブジェクト、カラム名などの条件が漏れており、
大文字小文字を区別するダブルクウォート("")で囲まれた主キーが作成された際には、
テーブル再作成時に余分なインデックス作成のクエリが流れることが確認されました。
本事象は、現状内部動作の不具合となるため、
ダブルクウォートを利用した主キーを利用したテーブルについて
定義情報タブからのテーブル再作成を行った際の回避が困難な事象となります。
誠に恐れ入りますが、
「実行」ボタン押下後のダイアログで表示されるクエリに対して、
ユニークインデックス再作成の処理は除き、別途SQL実行画面より再作成いただく方法にて回避をお願いできますでしょうか。
大変ご不便、ご迷惑をおかけしてしまい、誠に申し訳ありません。
本件につきましては、
早急な修正を検討させていただきます。
何卒よろしくお願い申し上げます。
返信を投稿
OB
キジメマ
返信ありがとうございます。
再現できたのこと、何よりです。
ご多忙中のところ、恐れ入りますがご対応のほど
宜しくお願いいたします。
当面の間は、直接SQLを駆使し、対応しようと思います。
再現できたのこと、何よりです。
ご多忙中のところ、恐れ入りますがご対応のほど
宜しくお願いいたします。
当面の間は、直接SQLを駆使し、対応しようと思います。
返信を投稿
OB