gpt4 book ai didi

database - 如何将打包类型用作表中的列类型?

转载 作者:搜寻专家 更新时间:2023-10-30 20:01:19 27 4
gpt4 key购买 nike

我目前正在尝试了解如何使用我在包中创建的类型作为我的表中的列类型。

这是我的包的代码...

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);

然后在我的 table 上...

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 );

我收到错误...

Error starting at line : 3 in command - 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 MASTERMIND_COLLECTION_TYPES.code_array ) Error report - ORA-00902: invalid datatype 00902. 00000 - "invalid datatype" *Cause:
*Action:

有人可以帮忙吗?这将不胜感激。

最佳答案

我们不能在表定义中使用 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 );

关于database - 如何将打包类型用作表中的列类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43986010/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com