目前,我正在使用以下代码片段逐列索引:
DECLARE
already_exists EXCEPTION;
columns_indexed EXCEPTION;
PRAGMA EXCEPTION_INIT ( already_exists, -955 );
PRAGMA EXCEPTION_INIT (columns_indexed, -1408);
BEGIN
EXECUTE IMMEDIATE 'Create Index TABLE_A_COLUMN_A on TABLE_A(COLUMN_A)';
EXCEPTION
WHEN already_exists or columns_indexed
THEN
NULL;
END;
COLUMN_A
这段代码可以替换吗
a) 使用列表引用并动态迭代它?
declare @myList varchar(100)
set @myList = 'COLUMN_A,COLUMN_B,COLUMN_C'
b) 并确保循环即使遇到一列问题也能保持循环?换句话说,如果其中一列出现问题,则整个循环不应失败
是的,当然,只需使用集合:
它
when others
会捕获所有错误,防止在 DDL 之一失败时循环中断。然而,使用 PL/SQL 创建这样的索引并不常见。通常索引是通过手动 DDL 一次性创建的,而不是通过代码创建的。您可能需要考虑是否使用正确的方法来完成更大的任务。