2014-05-20 4 views
0

'E : \ Oracle \ test'경로가 존재하지 않는 (정신적 인 폴더가 존재하지 않는다는 가정하에) 코드에 문제가 있습니다. 오류 예외 처리기로 가서 오류 로그를 작성해야하지만 그렇지 않습니다. 대신 오라클 디렉토리를 성공적으로 생성합니다. 왜 이런 일이 발생합니까? 내 코드는 어디에서 잘못 되었습니까? 누군가가 나를 도와주세요 수 동적 SQL에 대한 Oracle PL/SQL 예외

, 덕분에 많은 데이터베이스는 오라클 데이터베이스의 생성 된 디렉토리는 디스크에있는 진짜 단지의 별칭입니다 오라클 11g

DECLARE 
var1 VARCHAR2(2000) := 'somepath'; 
var2 VARCHAR2(2000) := 'directoryname'; 
err VARCHAR2(2000); 

BEGIN 
file_path_ := 'E:\Oracle\test\' || var1 || '\'; 
temp_dir_ := 'TEST_DIR_' || var2; 
plsql_block_ := 'CREATE OR REPLACE DIRECTORY ' || temp_dir_ || ' AS ' || '''' ||file_path_ || ''''; 
EXECUTE IMMEDIATE plsql_block_; 

SAVEPOINT Start_Trans; 

<some code here> 

EXCEPTION 
WHEN OTHERS THEN 
ROLLBACK TO Start_Trans; 
err := substr(SQLERRM,1,2000); 
Write_Log('ERROR', var1, err_); 

END; 

답변

1

입니다. Oracle은 사용자가 지정한 디렉토리가 실제로 존재하는지 확인하지 않습니다.

+0

그러나 단순히 "E : \ Oracle \ Test \"(실제 폴더가 존재하지 않음)로 CREATE OR REPLACE TEST_DIR을 실행하면 오류가 발생합니다. – erwin

+0

이상한 점은 차이를 만들 수 없습니다. 디렉토리가 처음 생성 될 때 예외가 발생합니까 (대체 할 필요가 없습니까?)? – diederikh

+0

@erwin "나쁜"코드와 그것이 생성하는 오류 메시지를 추가 할 수 있습니까? 내 테스트 데이터베이스에서 나는 틀린 경로로 디렉토리를 만들고 에러 메시지를 얻을 수 없다. –

관련 문제