나는 impdp를 사용하여 오타가 있었는데 이제는 콜론 (:)으로 시작하는 사용자 이름을 갖게되었습니다. 예 : my_schema.콜론 (:)으로 시작하는 oracle 사용자를 삭제하는 방법
어떻게이 사용자를 삭제할 수 있습니까? 나는 그것을 탈출하기 위해 생각할 수있는 모든 것을 시도했지만 아무 도움이되지 않습니다.
편집 : 명확히하려면 - 사용자 삭제 방법을 알고 있습니다. 특수 문자 문제를 극복하는 데 어려움을 겪고 있습니다.
나는 impdp를 사용하여 오타가 있었는데 이제는 콜론 (:)으로 시작하는 사용자 이름을 갖게되었습니다. 예 : my_schema.콜론 (:)으로 시작하는 oracle 사용자를 삭제하는 방법
어떻게이 사용자를 삭제할 수 있습니까? 나는 그것을 탈출하기 위해 생각할 수있는 모든 것을 시도했지만 아무 도움이되지 않습니다.
편집 : 명확히하려면 - 사용자 삭제 방법을 알고 있습니다. 특수 문자 문제를 극복하는 데 어려움을 겪고 있습니다.
당신이 동적 SQL이 할 수있는 것 같다
begin
execute immediate 'create user ":MY_SCHEMA" identified by xxx';
end;
/
PL/SQL procedure successfully completed.
select username, account_status from dba_users where username = ':MY_SCHEMA';
USERNAME ACCOUNT_STATUS
------------------------------ --------------------------------
:MY_SCHEMA OPEN
begin
execute immediate 'drop user ":MY_SCHEMA"';
end;
/
PL/SQL procedure successfully completed.
select username, account_status from dba_users where username = ':MY_SCHEMA';
no rows selected
큰 따옴표로 묶으려고 했습니까? 예컨대
drop user ":my_schema";
사건은이 작업을 수행 할 때 중요하다 - 그것은이다 "MYSCHEMA"또는 ": MYSCHEMA"또는 뭔가 사이에?
시도 작동하지 않습니다. –
당신은 할 수 중 하나를 사용 :
drop user :my_schema;
또는
drop user :my_schema cascade;
사용자가 그 때 제거되지 않습니다 다른 테이블에 제약이있는 경우
.drop table x cascade constraints; etc.
유일한 문제는 모든 것을 풀어 놓고 다시 시작해야한다는 것입니다. 데이터베이스에 스크립트가있는 경우 다시로드하기 위해 스크립트를 다시 실행해야합니다.
나는 사용자를 드롭하는 방법을 알고있다 - 처음에는 콜론에 문제가있다 - 특별한 숯이다. –
@Ran Biron 나는 문제에 대한 해결책을 찾기 위해 계속 노력할 것이다. 내가 무엇이든 만나면 나는 그것을 게시 할 것입니다. –
백업본에서 복원해야만했습니다.
이름에 특수 문자가있는 프로 시저를 삭제하는 것과 비슷한 문제에 대해 저에게 도움이되었습니다. – Jeff
@Jeff -이 경우에는 이름을 큰 따옴표로 묶어야합니다 ([문서보기] (https://docs.oracle.com/cd/E24693_01/server.11203/e17118/sql_elements008.htm)) 정적 SQL에서; 여기서 동적 인 부분은 특별히 사용자 이름입니다. 이것은 작동하지만 따옴표로 묶인 식별자가있는 다른 객체 나 프로 시저에 대해서는 약간 과장입니다. –
정적 문장에서 큰 따옴표를 사용하려고 시도했지만 여전히 큰 소리로 울 렸습니다. 그것은 나에게도 의미가 없지만, 역동적 인 작업과 나는 일하는 것을 발견해 주셔서 감사했습니다. 프로 시저에 하이픈이있어서 물음표 문자로 끝납니다. (나는 그것을 "- 삭제할 수 있습니까?"라고 말하면서 그것을 지울 수 없습니다.) 아이러니! – Jeff