要求如下:
通过 Oracle Apex 应用程序,我需要在另一个 Oracle 数据库中删除用户/模式。即,使用 Oracle Apex 应用程序远程删除用户。
目前,我正在使用以下过程来完成此任务。但是,由于有很多远程数据库,所以,我想知道有没有办法使这个动态化,即动态传递数据库链接名称DBMS_UTILITY.EXEC_DDL_STATEMENT
。因此,用户将传递用户名和数据库名,并且基于数据库名,该过程将连接到正确的数据库/数据库链接并删除给定的用户。如果还有其他方法可以完成此任务,请告诉我。
CREATE OR REPLACE
PROCEDURE drop_user_proc(
p_username VARCHAR2,
p_databasename VARCHAR2)
IS
ddl_stmt VARCHAR2(100);
BEGIN
IF p_databasename = ‘REMOTEDB1’ THEN
ddl_stmt := 'DROP USER '||p_username||' CASCADE';
dbms_utility.exec_ddl_statement@remotedb1(ddl_stmt);
END IF;
END drop_user_proc;