在添加新分区之前测试现有的 oracle table 分区

Test existing oracle table partition before adding a new one

我已经在 Whosebug 现有主题中进行了搜索,但找不到答案,

我尝试编写一个 pl sql 脚本来向我现有的 table 添加一个分区, 但是,在此之前, 我需要验证要添加的分区是否已存在于此 table 中, 如果存在,我无所事事, 如果不是,我必须用 alter table 来创建它 这是我的脚本不起作用 :s :s

        CREATE OR REPLACE PROCEDURE ADD_PARTITION AS

  V_TEST_PARTITION    INTEGER := 1;
  REQUETE             VARCHAR2(5000);

BEGIN

  SELECT COUNT(*)
  INTO V_TEST_PARTITION
  FROM USER_TAB_PARTITIONS
  WHERE TABLE_NAME   = 'SALES'
  AND PARTITION_NAME = 'MY_PARTITION';


  IF V_TEST_PARTITION = 0


  REQUETE := 'ALTER TABLE SALES ADD PARTITION'|| DEV || 'VALUES ('||MY_PARTITION'||') 
      TABLESPACE "STORE_DATA"';

  EXECUTE IMMEDIATE REQUETE;


  ELSE IF V_TEST_PARTITION = 0 THEN
    DBMS_OUTPUT.PUT_LINE('MY_PARTITION' is already exist');
  END IF;

END;

非常感谢你的帮助

您的代码有误:

IF V_TEST_PARTITION = 0

应该是

IF V_TEST_PARTITION <> 0