숙제에 문제가 있습니다. 나는 다음과 같은 유형 정의가 있습니다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'에 추가 한 후에 예제가 작동했습니다. 모든 유형이 성공적으로 작성 되었습니까? PL/SQL Developer와 같은 일부 IDE는'create type' 문을 실행하지만 예외를 경고하지는 않습니다. –
@jonearles : 예, 성공적으로 생성되었습니다. 저는 IDE를 사용하지 않고 sqlplus CLI의 스크립트를'@ script.sql' 표기법으로로드합니다. 지금까지는 오래된 시스템이 남아있을 수도 있고 깨끗한 환경에서 작업하지 않을 수도 있지만 오라클 관리에 익숙하지 않습니다. 세션을 정리하고 깨끗한 환경에서 다시 시작하는 방법이 있습니까? – Throoze
스크립트에는 스키마 이름이 없으므로 모든 데이터베이스에서 임의의 사용자로 스크립트를 실행할 수 있어야합니다. 다시 시작하려면 다음과 같은 스크립트를 실행할 수 있습니다 :'drop table guide; 강하 유형 guide_t; 낙하 형 관광객; 드롭 형식 phones_table_t; 드롭 유형 languages_table_t;'. 코드에서'tourist_t'는'PLS-00589 : 오브젝트 유형 "TOURIST_T"'에 속성이 없습니다. –