我试图将模式名称作为参数传递给execute immediate命令。无法在立即执行中传递模式名称
DECLARE
sql_stmt VARCHAR2(200);
BEGIN
sql_stmt := 'DROP INDEX :owner.".MY_INDEX"';
EXECUTE IMMEDIATE sql_stmt using &owner_name ;
EXCEPTION
WHEN OTHERS THEN
IF SQLCODE != -942 THEN
RAISE;
END IF;
END;
上面加注以下Oracle错误: ORA-06550:第5行,列38: PLS-00201:标识符 'USER_X' 必须被声明
我试图也尝试连接sql_stmt但没有成功。我收到与上面完全相同的错误:
DECLARE
sql_stmt VARCHAR2(200);
BEGIN
sql_stmt := 'DROP INDEX ' || &owner. || '".MY_INDEX";';
EXECUTE IMMEDIATE sql_stmt ;
EXCEPTION
WHEN OTHERS THEN
IF SQLCODE != -942 THEN
RAISE;
END IF;
END;
任何有关将用户名作为变量传递给execute语句的建议吗?