gpt4 book ai didi

oracle - 如何使Oracle ALTER TABLE MODIFY脚本具有幂等性?

转载 作者:行者123 更新时间:2023-12-03 08:49:32 26 4
gpt4 key购买 nike

我有这个迁移脚本;

ALTER TABLE table_name MODIFY (column_name NULL);

如何使其幂等?

最佳答案

您可以使用异常处理程序:

DECLARE
CANNOT_MODIFIY_TO_NULL EXCEPTION;
PRAGMA EXCEPTION_INIT(CANNOT_MODIFIY_TO_NULL, -1451);
BEGIN

EXECUTE IMMEDIATE 'ALTER TABLE TABLE_NAME MODIFY (column_name NULL)';
exception
when CANNOT_MODIFIY_TO_NULL then
NULL;
END;

或在 View USER_TAB_COLUMNS中检查NULLABLE:

DECLARE

CURSOR Cols IS
SELECT COLUMN_NAME
FROM USER_TAB_COLUMNS
WHERE TABLE_NAME = 'TABLE_NAME'
AND NULLABLE = 'N'
AND COLUMN_NAME = 'COLUMN_NAME';

BEGIN
FOR aCol IN Cols LOOP
EXECUTE IMMEDIATE 'ALTER TABLE TABLE_NAME MODIFY ('||aCol.COLUMN_NAME||' NULL)';
END LOOP;
END;

关于oracle - 如何使Oracle ALTER TABLE MODIFY脚本具有幂等性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59861837/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com