Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
级联删除子表的PL/SQL过程_Sql_Oracle_Plsql - Fatal编程技术网

级联删除子表的PL/SQL过程

级联删除子表的PL/SQL过程,sql,oracle,plsql,Sql,Oracle,Plsql,我有这样的情况 我必须编写一个PL/SQL过程来删除父表的所有子表,并修改子表中引用的列的长度 我需要从用户那里获取这些参数的输入。 父表名 父列名(要更改其列大小) 新列大小 我是PL/SQL编程新手。请帮助我 提前谢谢。我不打算在这里为您做任何工作,但以下提示应该会对您有所帮助: 在所有列中查找父表的主键约束的名称,其中表名='*父表名*'和列名='*要更改的列名*' 在all_constraints中查找子表,其中constraint\u type='R'和R_constraint\u

我有这样的情况

我必须编写一个PL/SQL过程来删除父表的所有子表,并修改子表中引用的列的长度

我需要从用户那里获取这些参数的输入。 父表名 父列名(要更改其列大小) 新列大小

我是PL/SQL编程新手。请帮助我


提前谢谢。

我不打算在这里为您做任何工作,但以下提示应该会对您有所帮助:

  • 所有列中查找父表的主键约束的名称,其中
    表名='*父表名*'和列名='*要更改的列名*'
  • all_constraints
    中查找子表,其中
    constraint\u type='R'和R_constraint\u name='*步骤1*中找到的主键约束的名称*'
  • 使用
    executeimmediate
    执行DML语句以删除子表并更改父表

你试过什么吗?至少要用基本知识构建一个块?是否只想清空子表(这样可以使列变小)还是要删除它们?@ammoQ我要删除子表,并更改由user@realspirituals我已经试着写了一些模块,但它们是针对特定案例的,我想写一般案例。