2012-04-26 6 views
2

Oracle DB에서 사용자를 삭제하려고 시도했습니다.Oracle 저장 프로 시저 삭제 사용자

create or replace procedure skeleton1(inUser varchar) IS 
begin 
    set @str = concat('drop user ', "'",inUser,"'@","'localhost'"); 
    prepare stmt from @str; 
    -- select @str; 
    execute IMMEDIATE stmt; 
    deallocate prepare stmt; 
end// 
delimiter ; 

하지만 여러 컴파일 오류가 발생합니다.

도움이 될만합니까?

답변

4

유효한 오라클 구문이 거의 없습니다. 잠재적으로 파괴적인 일을 시도하기 전에 PL/SQL 문서를 읽기 시작할 것을 제안합니다. 어쩌면 here을 시작하고 어디로 가는지 볼 수 있습니다.

나는 직접 대답을하기를 꺼려하지만 어딘가에서 얻을 수 있습니다. 그래서 당신은 같은 것을 수행 할 수 있습니다

create or replace procedure skeleton1(inUser varchar) IS 
begin 
    execute IMMEDIATE 'drop user ' || inUser); 
end; 
/

을하지만 당신은 정말이 악용 될 수 있는지 확인하기 위해 입력을 소독해야하고, 당신이 정말로 그것을 가질 수 당신이 무엇을하고 있는지 이해할 필요하고 어떤 영향을. 하나의 예제처럼, 사용자가 객체를 소유하고 있으면이 작업은 실패합니다.

+0

+1 "* PL/SQL 설명서 읽기 시작 *" –

+0

감사합니다. 귀하의 응답이 도움이되었습니다. –

관련 문제