oracle plsql debugging
sqlcode
sqlerrm
enter : chr(10)
schema : SYS_CONTEXT('USERENV', 'CURRENT_USER')
object name : $$PLSQL_UNIT
line : $$PLSQL_LINE
error trace: dbms_utility.format_error_backtrace();
가장 최근에 수행된 SQL문에 의한 영향을 준 행
sql%rowcount : 행의 갯수(정수)
sql%found : 행의 갯수가 한 개 이상이면 TRUE(BOOLEAN)
sql%notfound : 행의 갯수가 없으면 TRUE(BOOLEAN)
sql%isopen : PL/SQL은 실행 후 바로 묵시적 커서(IMPLICIT CURSOR)를 닫기 때문에 항상 FALSE로 평가
ex)
if vs_code is null or vs_code = '' then
o_val := -1;
o_msg := '코드 입력하세요. '||chr(10)||SYS_CONTEXT('USERENV', 'CURRENT_USER')||'.'||$$PLSQL_UNIT || ', Line:'||$$PLSQL_LINE;
return;
end if;
EXCEPTION
WHEN OTHERS THEN
rollback;
o_rtn_msg := o_rtn_msg||': '||sqlcode||chr(10)||sqlerrm||chr(10)||dbms_utility.format_error_backtrace();
dbms_output.put_line(o_rtn_msg);
if sql%rowcount <= 0 then
o_rtn_val := -2;
o_rtn_msg := '처리된 행이 없습니다. '||chr(10)||SYS_CONTEXT('USERENV', 'CURRENT_USER')||'.'||$$PLSQL_UNIT || ', Line:'||$$PLSQL_LINE;
return;
end if;
'Oracle(DB관련)' 카테고리의 다른 글
oracle table fuction (0) | 2016.12.06 |
---|---|
oracle SYS_CONTEXT (0) | 2016.12.05 |
sqlplus -prelim (0) | 2014.08.11 |
Automatic Workload Repository - awrrpt.sql (0) | 2014.04.09 |
flashback_transaction_query (0) | 2013.11.07 |