database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 38558 게시물 읽기
No. 38558
에러가 발생한 라인을 알고싶습니다.
작성자
김흥수(protokhs)
작성일
2011-05-18 11:28
조회수
6,847

 SQL-PLUS 같은 경우는 단순한 select 문을 사용하여도

에러가 나면 어느행의 어느 컬럼에서 에러가 났는지 알려줍니다.

 

그러나 제가 찾아본 바로는 OCI에서도 찾을 수 없고 기타 다른 oracle 관련 개발 인터페이스에서

에러가 발생한 위치를 찾아 주는 것을 본적이 없네요...( 객체 생성시 에러는 시스템뷰에 있지만... 단순한 SQL 에러의 위치는 어디에 있는지...)

SQL-PLUS는 어떻게 에러의 위치를 찾는 것일까요?

 

아시는 분이 계시면 가르쳐주시기 바랍니다.

이 글에 대한 댓글이 총 3건 있습니다.

DECLARE
    NUM     NUMBER;
    MESG    VARCHAR2(255);
BEGIN
    NUM     := 100 / 0; -- 0 나누기 오류 발생시킴
    EXCEPTION
    WHEN  OTHERS  THEN
        MESG    := DBMS_UTILITY.FORMAT_ERROR_STACK();  
        DBMS_OUTPUT.PUT_LINE(MESG);
        MESG    := DBMS_UTILITY.FORMAT_ERROR_BACKTRACE();  
        DBMS_OUTPUT.PUT_LINE(MESG);
END;

 

결과

ORA-01476: 제수가 0 입니다

ORA-06512: 줄 5에서

박진복(pjb708)님이 2011-05-19 11:46에 작성한 댓글입니다.

 박진복님 감사합니다.

 

그러나 제가 궁금한 것은 SQL-PLUS 처럼

SQL의 syntax 에러의 행을 지적해주는 기능이 어떤것이냐 하는 것입니다.

 

예를 들어 SQL-PLUS 에서는

SQL> select * from dual where 1

  2  /

select * from dual where 1

                         *

1행에 오류:

ORA-00920: 관계 연산자가 부적합합니다

 

같이 표시가 됩니다.

제가 지금 toad 같은 프로그램을 만들고 있는데...

제가 찾아본 바로는 이렇게 행을 보고해주는 API가 없어서 여쭤보는 것입니다.

김흥수(protokhs)님이 2011-05-19 18:06에 작성한 댓글입니다.

Oracle client 를 이용하는 툴들은 에러 위치를 잡아 줍니다.

sql developer, orange 같은 툴은 잡아 주더군요

최종희(xcrunner)님이 2018-04-26 16:00에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
38561초보적인 스크립트 실행 질문입니다. [2]
질럿
2011-05-18
3402
38560[질문]최근일자 구하기 [2]
물새
2011-05-18
3698
38559쿼리 질문 있습니다. [1]
이민선
2011-05-18
3059
38558에러가 발생한 라인을 알고싶습니다. [3]
김흥수
2011-05-18
6847
38556사용가능한 오라클 라이센스및 종류에 대한문의 [2]
매수신호
2011-05-17
3316
38555ORACLE_HOME 을 조회할 수 있는 뷰가 있나요? [1]
이름
2011-05-17
3230
38554순번을 사용한 timestamp unique 생성. [4]
김기환
2011-05-16
7590
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.021초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다