当前位置: 首页 > 知识库问答 >
问题:

在PL/SQL存储过程中使用ORACLE自定义数据类型作为参数存在哪些限制?

齐雅畅
2023-03-14

我参与了一对java项目,其中使用oracle存储过程,使用oracle自定义数据类型,例如oracle对象

CREATE OR REPLACE TYPE OBJ1 AS OBJECT(
      SOME_VALUE                VARCHAR2(18 CHAR)
    , SOME_OTHER_VALUE          NUMBER(3,0) 
    , ...
);
/
CREATE OR REPLACE TYPE TBL1 IS TABLE OF OBJ1;
/
CREATE OR REPLACE PACKAGE PKG_SECURITY_CHECK AS
    
    PROCEDURE VERIFY1(
        TBL_INPUT       TBL1,
        SOME_OUTPUT     OUT NUMBER
    );
    
END PKG_CIRCUITO_DI_SICUREZZA;

共有1个答案

隆礼骞
2023-03-14

没有额外的结构限制。如果它是有效的Oracle类型--我们可以在SQL中创建它--我们可以使用它定义PL/SQL参数。

在TBL1中可以存储的OBJ1实例的数量没有数字限制。但是,对象存储在会话内存中,因此有一个上限,这取决于对象有多少填充的属性。但是,如果将如此多的对象填充到一个集合中,则会破坏MAX_PGA_TARGET,这表明您可能选择了错误的方法。

 类似资料:
  • 我需要对一个参数为PL/SQL表的过程进行JDBC调用。我正在尝试结构对象。但是我没有做正确的事情。我得到错误: ORA-04043:对象“斯科特”。“对象列表结构”不存在。 以下是代码片段: 参数“?”对于本程序,类型为: 我们非常感谢任何能让我们成功的见解谢谢

  • 我试图创建一个以记录类型为参数的过程。我的问题是,我不能在过程之前定义我的类型,它说我的类型没有声明。。我该怎么做? 这是我的代码: 错误(1,29):PLS-00201:必须声明标识符“TIP”

  • 我正在尝试执行从hibernate到oracle表的插入操作。我的存储过程是:-

  • 问题内容: 我怎样才能做一个连接2个不同的表在同一像 它的报告像 无效的列名T 任何帮助,将不胜感激 问题答案: 您必须使用动态sql: 通常,数据库(尤其是SQL Server)不允许参数代表数据库名称,架构名称,表名称或列名称。

  • 主要内容:PL/SQL子程序的部分,创建存储过程,执行独立程序,删除独立存储过程,PL/SQL子程序中的参数模式,传递参数的方法在本章中,我们将讨论PL/SQL中的存储过程。 子程序是执行特定任务的程序单元/模块。 这些子程序组合起来形成更大的程序。这种做法被称为“模块化设计”。 子程序可以被称为调用程序的另一个子程序或程序调用。 可以在以下几个地方中创建一个子程序 - 在模式(schema)级别中 一个程序包中 在PL/SQL块中 在模式(schema)级别中,子程序是一个独立的子程序。它是使

  • 本文向大家介绍Oracle存储过程和自定义函数详解,包括了Oracle存储过程和自定义函数详解的使用技巧和注意事项,需要的朋友参考一下 概述 PL/SQL中的过程和函数(通常称为子程序)是PL/SQL块的一种特殊的类型,这种类型的子程序可以以编译的形式存放在数据库中,并为后续的程序块调用。 相同点: 完成特定功能的程序 不同点:是否用return语句返回值。 举个例子: 一旦创建了改程序并将其存储