小编Chr*_*ris的帖子

基于触发器的分区创建

我在外键上有一个列表分区表.因此,如果我想插入一个新实体,则缺少的分区会在插入时引发异常.我以为我是一个很酷的公爵,并使用触发器来创建新的分区:-)但是在执行期间分区将不可用.如果你稍等一下,一切正常(但dbms_lock.sleep不会做的伎俩).

所以这是我的触发器(以及需要的程序) - 注意结束附近的"检查分区部分"

 CREATE OR REPLACE PROCEDURE Execute_DDL
   (i_sql IN VARCHAR2)
AS
  pragma autonomous_transaction;
BEGIN
  EXECUTE IMMEDIATE (i_sql);
  commit;
END;
/
Run Code Online (Sandbox Code Playgroud)

.

CREATE OR REPLACE TRIGGER Q_FLD_NEW_PART_TRG
AFTER INSERT
ON Q_FLD 
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
DECLARE
  l_cnt number;
  l_wait_cnt number := 0;
  l_alter varchar2(1000);
  l_job_stmt varchar2(1000);
  l_job_nr number;
  l_job dba_jobs_running%rowtype;
BEGIN
  SELECT count(*) INTO l_cnt from user_tables 
     where table_name = 'QUOTE' and partitioned = 'YES';

   if l_cnt <= 0 then return; end if; …
Run Code Online (Sandbox Code Playgroud)

oracle plsql partitioning

3
推荐指数
1
解决办法
2716
查看次数

标签 统计

oracle ×1

partitioning ×1

plsql ×1