dbms_errlog.create_error_log를 통해 오류 로그 테이블을 DML 작업 오류에 대해 대량으로 사용하고 ORA_ERR_MESG $를 다시 클라이언트에 반환합니다. 그러나 오류 코드를 무시해야하므로 사용자 친화적으로 보입니다.
예 : ORA-01400 : ( "ABC_OWNER". "ABC_PART". "REGION")에 NULL을 삽입 할 수 없습니다.
"NULL을 REGION에 삽입 할 수 없음"으로 변경해야합니다.
"ORA-"패턴을 검색하고 일부 추출을 수행하기 위해 REGEXP_SUBSTR을 시도했지만 어느 정도만 성공했습니다. 이를 수행하는 방법에 대해 조언 해 주시겠습니까?
문안 인사.
많은 예외 n 오라클이 있고 다른 마스크가 있습니다. 모두 코딩 하시겠습니까?
현재 정규식은 다음과 같이 보일 수 있습니다.
select regexp_replace('ORA-01400: cannot insert NULL into ("ABC_OWNER"."ABC_PART"."REGION")'
,'^ORA-\d+:\s(.+)\(.+\.\"(.+)\"\)', '\1 \2') from dual
편집 : regexp '^ ORA- \ d + : \ s (. +) (. +. \ "(. +) \")'설명
()
평균 그룹 (\ 1)으로 캡처됩니다된다.포인트 6,8 및 11의 정규 표현식은 배고픈 검색이며 첫 번째 그룹에서 가장 긴 문자열에 대한 벌금을 부과합니다. 길이 "6", "8"및 "11"사이에 몇 가지 변형이 있는지 여부를 의미합니다. "6"은 먼저 선택하고 가능한 모든 것을 가져갑니다 "8"은 다음을 선택하고 "11"은 가장 적게 선택합니다. 예를 들어 문자열 aaaaaa
과 정규 표현식이 (.+)(.+)
있는 경우 첫 번째 그룹은 가져 aaaaa
오고 두 번째 그룹은a
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다