在 Oracle 数据库中,如何创建没有长度的 varchar2 类型的 table

in Oracle database, how do I create a table of varchar2 type without length

为了将其用作函数中的返回类型,我需要在数据库级别创建一个类型。 我通过输入命令来完成:

CREATE TYPE empno_tbl 
    IS TABLE OF VARCHAR2(100);

但这迫使我选择一个长度。 我想创建一个没有特定长度的 table 类型的字符串。

有办法吗?

如果你真的想要它没有长度然后使用 CLOB.

CREATE TYPE empno_tbl IS TABLE OF CLOB;

(有一个限制,但是在 Oracle 19c the CLOB datatype has a limit 的 4GB * DB_BLOCK_SIZE 初始化参数中,它给出了 8 TB 到 128 TB 的总大小,如果你达到那个极限那么你的方法可能有问题。)

VARCHAR2 的最大大小为 4000 字节,因此如果您可以应付该限制,则只需使用:

CREATE TYPE empno_tbl IS TABLE OF VARCHAR2(4000);