Database 如何将打包类型用作表中的列类型?
我目前正在尝试了解如何将我在包中创建的类型用作表中的列类型 这是我的包的代码Database 如何将打包类型用作表中的列类型?,database,oracle,plsql,user-defined-types,varray,Database,Oracle,Plsql,User Defined Types,Varray,我目前正在尝试了解如何将我在包中创建的类型用作表中的列类型 这是我的包的代码 create or replace PACKAGE MY_TYPES IS --Associative Array Types TYPE permutation_array IS TABLE OF VARCHAR2(300) INDEX BY PLS_INTEGER; --VARRAY Types TYPE code_array IS VARRAY(4) OF VARCHAR2(9); 那么我的桌子 CR
create or replace PACKAGE MY_TYPES
IS
--Associative Array Types
TYPE permutation_array IS TABLE OF VARCHAR2(300) INDEX BY PLS_INTEGER;
--VARRAY Types
TYPE code_array IS VARRAY(4) OF VARCHAR2(9);
那么我的桌子
CREATE TABLE mastermind.match_table (match_id NUMBER(4), code_breaker_id NUMBER(4) ,
code_breaker_name VARCHAR2(200),
code_master_id NUMBER(4),
code_master_name VARCHAR2(200),
winner_id NUMBER(4),
game_code MY_TYPES.code_array );
我得到了错误
从命令-创建表的第3行开始时出错
mastermind.match_表(match_id编号(4)、code_breaker_id编号(4)
,代码断路器名称VARCHAR2(200),代码主id号(4),
代码\u大师\u姓名VARCHAR2(200),赢家\u id号(4),游戏代码
MASTERMIND_COLLECTION_TYPES.code_array)错误报告-ORA-00902:
无效数据类型
90200000-“无效数据类型”
*原因:*行动:
有人能帮忙吗?我们将不胜感激 我们不能在表定义中使用PL/SQL类型。它必须是SQL类型
create or replace type code_array IS VARRAY(4) OF VARCHAR2(9);
然后可以创建一个表:
CREATE TABLE mastermind.match_table (match_id NUMBER(4),
code_breaker_id NUMBER(4) ,
code_breaker_name VARCHAR2(200),
code_master_id NUMBER(4),
code_master_name VARCHAR2(200),
winner_id NUMBER(4),
game_code code_array );
感谢您对@APC的帮助。非常感谢。