2016-03-22 18 views
0

customer_tyオブジェクトに "deposits"というネストしたテーブルが含まれています。スコープの無効な識別子エラー

CREATE TYPE deposit_ty as object(
depNo number, 
depCategory ref depcategory_ty, 
amount number, 
period number 
) 
/

この 'depCategory'は、 'depcategory_tbl'と呼ばれる別のテーブルのdepcategory_tyを参照します。

CREATE TYPE deposit_ntty as table of depcategory_ty 
/

CREATE TYPE address_ty as varray(3) of varchar2(20) 
/

CREATE TYPE customer_ty as object(
custId varchar2(4), 
custName varchar2(10), 
address address_ty, 
dob date, 
deposits deposit_ntty 
) 
/

CREATE TABLE customer_tbl of customer_ty(
custId primary key) 
nested table deposits store as cli_deposit_tbl 
/

alter table cli_deposit_tbl 
add scope for (depCategory) is depcategory_tbl 
/

テーブルのスコープを追加しようとすると問題が発生します。それは言う。

add scope for (depCategory) is depcategory_tbl 
       * 
ERROR at line 2: 
ORA-0094:"DEPCATEGORY":Inavalid Identifier 

すべての識別子が正しい。これには何が問題なのですか?

答えて

2

それはあなたが間違ってdeposit_nttyを定義し、することを意味してきたように見える:あなたはすでにそれを持っているかもしれ

alter table cli_deposit_tbl 
add scope for (depCategory) is depcategory_tbl 
/

ORA-22892: scoped table "DEPCATEGORY_TBL" does not exist in schema "PUBLIC" 

それ:

CREATE TYPE deposit_ntty as table of deposit_ty 
/

その変更により、あなたの祭壇は今取得示されていない。そこに変更作業があります:

CREATE TABLE depcategory_tbl of depcategory_ty; 

Table DEPCATEGORY_TBL created. 

alter table cli_deposit_tbl 
add scope for (depCategory) is depcategory_tbl 
/

Table CLI_DEPOSIT_TBL altered. 
+0

これは機能しています。ありがとうございました。 – Pegasus

関連する問題