3
我的作業有問題。我有以下類型定義:Oracle sqlplus - 定義沒有屬性但嵌套表的類型表
-- Type definitions
CREATE OR REPLACE TYPE languages_table_t AS TABLE of VARCHAR2(20);
/
CREATE OR REPLACE TYPE phones_table_t AS TABLE of NUMBER;
/
CREATE OR REPLACE TYPE tourist_t AS OBJECT (
-- ...
-- some simple attrubutes
-- one attribute of user defined type
-- more simple attrubutes
-- ...
) NOT FINAL;
/
CREATE OR REPLACE TYPE guide_t UNDER tourist_t (
languages languages_table_t,
phones phones_table_t
);
/
-- All types are created successfully
-- table definitions:
CREATE TABLE Tourist OF tourist_t (
-- all simple attributes with nullity constraints
CONSTRAINT PK_TOURIST PRIMARY KEY (username),
) NESTED TABLE the_UDT_attr STORE AS the_user_defined_type;
-- Created successfully
CREATE TABLE Guide OF guide_t (
CONSTRAINT PK_GUIDE PRIMARY KEY (username)
) NESTED TABLE languages STORE AS guide_languages
NESTED TABLE phones STORE AS guide_phones;
-- returns mystic error
運行完最後創建指令時
,我得到以下錯誤:
CREATE TABLE Guide OF guide_t (
*
ERROR at line 1:
ORA-22913: must specify table name for nested table column or attribute
我搜索了這個錯誤,但它似乎太具體到我的定義,我找不到如何解決它。請,任何幫助將不勝感激。我需要一個關於如何攻擊這類錯誤的想法,如何解決這些錯誤或在哪裏閱讀。
sqlplus中的版本是:
SQL> SELECT * FROM V$VERSION;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
PL/SQL Release 10.2.0.4.0 - Production
CORE 10.2.0.4.0 Production
TNS for Solaris: Version 10.2.0.4.0 - Production
NLSRTL Version 10.2.0.4.0 - Production
如果您需要任何其他信息來幫助我,請你和我會更新的問題。
謝謝!
你的榜樣爲我工作後,我添加了一個真正的列'tourist_t':當我加入這行155 udt_tables.sql腳本工作。你確定所有類型創建成功嗎?一些IDE(例如PL/SQL Developer)將執行'create type'語句,但不會警告您這些異常。 –
@jonearles:是的,我相信他們是成功創建的。我沒有使用IDE,而是使用符號'@ script.sql'在sqlplus CLI中加載腳本。到目前爲止,我認爲這可能是一些舊運行的遺留問題,也許我不是在乾淨的環境中工作,但我對oracle的管理並不熟悉。有沒有辦法清理會話,並重新開始一個乾淨的環境? – Throoze
由於您的腳本沒有模式名稱,因此您應該可以在任何數據庫上以任何用戶身份運行它們。重新開始,你可以像這樣運行一個腳本:'drop table guide; drop type guide_t; drop type tourist_t; drop type phones_table_t; drop type languages_table_t;'。使用你的代碼,'tourist_t'應該失敗,PLS-00589:在對象類型「TOURIST_T」中找不到屬性。 –