首页 > 其他分享 >ORA-02303: 无法使用类型或表的相关性来删除或取代一个类型

ORA-02303: 无法使用类型或表的相关性来删除或取代一个类型

时间:2023-10-12 17:56:03浏览次数:35  
标签:或表 ORDER id VARCHAR2 RESULT 02303 TYPE PAYMENT ORA

在日常开发中,我们会创建Type和对应的TAB供其他数据库对象使用,如果对象引用了该Type,则对其修改(CREATE OR REPLACE TYPE)时会出现如下错误,ORA-02303: 无法使用类型或表的相关性来删除或取代一个类型 。

举例:

SQL> CREATE OR REPLACE TYPE typ_payment_order_result AS OBJECT
  2  (
  3    id                  NUMBER,
  4    id_outgoing_payment VARCHAR2(30),
  5    id_credit           NUMBER,
  6    contract_no         VARCHAR2(20),
  7    good_category       VARCHAR2(100)
  8  )
  9  ;
 10  /
CREATE OR REPLACE TYPE typ_payment_order_result AS OBJECT
(
  id                  NUMBER,
  id_outgoing_payment VARCHAR2(30),
  id_credit           NUMBER,
  contract_no         VARCHAR2(20),
  good_category       VARCHAR2(100)
)
;
ORA-02303: 无法使用类型或表的相关性来删除或取代一个类型

因为该Type有其他对象引用,故对其进行修改时会出上面的错误,查看其依赖关系,可看到如下的依赖:

SQL> SELECT t.name,
  2         t.type,
  3         t.referenced_name,
  4         t.referenced_type
  5    FROM all_dependencies t
  6   WHERE t.referenced_name = 'TYP_PAYMENT_ORDER_RESULT';
NAME                           TYPE               REFERENCED_NAME                                                  REFERENCED_TYPE
------------------------------ ------------------ ---------------------------------------------------------------- ------------------
TAB__PAYMENT_ORDER_RESULT      TYPE               TYP_PAYMENT_ORDER_RESULT                                         TYPE
TAB_PAYMENT_ORDER_RESULT       TYPE               TYP_PAYMENT_ORDER_RESULT                                         TYPE
PKG_INSTAN_PAYMENT             PACKAGE            TYP_PAYMENT_ORDER_RESULT                                         TYPE
PKG_INSTAN_PAYMENT             PACKAGE BODY       TYP_PAYMENT_ORDER_RESULT                                         TYPE 
SQL>


解决办法:使用Force选项解决。

SQL> CREATE OR REPLACE TYPE typ_payment_order_result FORCE AS OBJECT
  2  (
  3    id                  NUMBER,
  4    id_outgoing_payment VARCHAR2(30),
  5    id_credit           NUMBER,
  6    contract_no         VARCHAR2(20),
  7    good_category       VARCHAR2(100)
  8  )
  9  ;
 10  /
Type created 
SQL>

 

 

标签:或表,ORDER,id,VARCHAR2,RESULT,02303,TYPE,PAYMENT,ORA
From: https://www.cnblogs.com/lgx5/p/17760162.html

相关文章

  • Oracle Connect BY用法
     selectlevel fromdualconnectbylevel<=10;上例均可查询得到1..N的序列。SELECTA.*,REGEXP_SUBSTR(A.MATERIAL_ID,'[^,]+',1,LVL,'C')MATERIAL_NO--,REGEXP_COUNT(A.MATERIAL_ID,',')+1CNTFROMDWT_INPUT_LOTA,(SELECTLEVELLV......
  • Oracle数据库导入、导出详解
    Oracle11g数据库导入导出方式传统方式【exp(导出)和(imp)导入】数据泵方式【expdp导出和(impdp)导入】第三方工具【PL/sqlDevelpoer】一、什么是数据库导入导出?Oracle11g数据库的导入/导出,就是我们通常所说的Oracle数据的还原/备份。 数据库导入:把.dmp格式文件从本地导入到......
  • C# +.Net +Oracle的医院化验室LIS系统源码
    LIS系统源码技术细节:Ø体系结构:Client/Server架构SaaS模式Ø客户端:WPF+WindowsFormsØ服务端:C#+.NetØ数据库:OracleØ接口技术:RESTfulAPI+Http+WCFLIS检验系统一种专门用于医院化验室的计算机系统,它致力于提高医院化验室的工作效率和检测准确率。LIS系统由多个子系统组......
  • 再见 Typora,这款开源 MarkDown 编辑器更香
    MarkDown编辑器中优秀者众多,但是使用顺手,简洁大方符合个人审美的并不是很多,Typora算一个,个人也比较喜欢,但是作者最近也开始收费,毕竟优秀的产品需要money的支持,如果你已经养成了使用习惯,同时有可观的收入,希望大家可以支持一下,毕竟开源不已,需要个人付出了大量的时间和精力。好了,今天......
  • Oracle session的sid与serial的简单学习
    Oraclesession的sid与serial的简单学习ITPUBvage的说法这样说吧,Oracle允许的会话数(或者说连接数)是固定的,比如是3000个。假设每个会话要占1K字节,哪一共就需要3000K。这3000K就是一个小内存池,可以称为会话池。会话池中每个1K保存一个会话的信息,可以称为一个会话Slot。假设编......
  • oracle11g linux环境安装
    【0】需求在centos7上安装oracle11G1204,有7个文件。【1】环境配置(1.1)修改主机名【1】hostnamenew_hostname#直接修改本地主机名 hostnamectlset-hostnamenew_hostname  【2】vi /etc/sysconfig/network#修改网......
  • 关于linux:Android的/ storage / emulated / 0和/ data / media / 0的不同权限
     Android/storage/emulated/0and/data/media/0differentpermissions我有LGG3智能手机。在文件系统探索期间,我发现/storage/emulated/0/...目录(从系统接收到我的本地用户)具有不允许chmod和chown操作的权限。当我尝试将某些文件更改为777时,我收到了0个结果......
  • Oracle 简介与 Docker Compose部署
    最近,我翻阅了在之前公司工作时的笔记,偶然发现了一些有关数据库的记录。当初,我们的项目一开始采用的是Oracle数据库,但随着项目需求的变化,我们不得不转向使用SQLServer。值得一提的是,公司之前采用的是Docker技术,所有数据库的部署都是通过DockerCompose来完成的。在今天的文......
  • 【愚公系列】2023年10月 二十三种设计模式(九)-装饰者模式(Decorator Pattern)
    ......
  • ORACLE查看数据文件包含哪些对象
    ORACLE查看数据文件包含哪些对象1、Oracle数据库由数据库文件、日志文件、控制文件组成。Oracle数据库12c引入了一个新的多承租方架构,使用该架构可轻松部署和管理数据库云。2、Oracle中有数据文件、控制文件、日志文件、参数文件、备份文件等。数据库的物理存储结构是由一些多......