0
'E : \ Oracle \ test'경로가 존재하지 않는 (정신적 인 폴더가 존재하지 않는다는 가정하에) 코드에 문제가 있습니다. 오류 예외 처리기로 가서 오류 로그를 작성해야하지만 그렇지 않습니다. 대신 오라클 디렉토리를 성공적으로 생성합니다. 왜 이런 일이 발생합니까? 내 코드는 어디에서 잘못 되었습니까? 누군가가 나를 도와주세요 수 동적 SQL에 대한 Oracle PL/SQL 예외
, 덕분에 많은 데이터베이스는 오라클 데이터베이스의 생성 된 디렉토리는 디스크에있는 진짜 단지의 별칭입니다 오라클 11gDECLARE
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;
그러나 단순히 "E : \ Oracle \ Test \"(실제 폴더가 존재하지 않음)로 CREATE OR REPLACE TEST_DIR을 실행하면 오류가 발생합니다. – erwin
이상한 점은 차이를 만들 수 없습니다. 디렉토리가 처음 생성 될 때 예외가 발생합니까 (대체 할 필요가 없습니까?)? – diederikh
@erwin "나쁜"코드와 그것이 생성하는 오류 메시지를 추가 할 수 있습니까? 내 테스트 데이터베이스에서 나는 틀린 경로로 디렉토리를 만들고 에러 메시지를 얻을 수 없다. –