【问题标题】:Create TYPE with 3 Param使用 3 个参数创建 TYPE
【发布时间】:2019-01-14 04:06:45
【问题描述】:

我在 PL/SQL 块中有简单的声明:

 declare  
     TYPE t_my_list is record(COL1 VARCHAR2(4000),COL2 VARCHAR2(4000));
     TYPE list_3STR is table of t_my_list;
     v_ret     list_3STR := list_3STR();
 begin
     null;
 end;

现在我需要创建可以在其他过程中使用的类型。所以我这样做:

create or replace type ListOfParam as table of 
(COL1 VARCHAR2(4000),COL2 VARCHAR2(4000), COL3 VARCHAR2(4000)); 

但我遇到了错误:

错误(1,30):PLS-00103

【问题讨论】:

  • create末尾添加/
  • @user7294900 这不起作用,因为他使用了错误的语法

标签: sql oracle plsql types


【解决方案1】:

你可以像这样创建一个对象类型

create or replace type type1 as object 
( 
  COL1 VARCHAR2(4000)
 ,COL2 VARCHAR2(4000)
 ,COL3 VARCHAR2(4000)
)
/

然后创建该对象类型的集合

create or replace type ListOfParam as table of type1;

【讨论】:

  • 我可以只创建 type1 对象然后放入包中吗: TYPE t_typ1 IS TABLE OF type1
  • 是的,为什么不呢?但后来我不明白你为什么要创建一个全局对象类型?
  • 知道了,这很好,现在明白了,谢谢@hotfix 的帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-05-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-02
  • 2014-10-21
相关资源
最近更新 更多