DB추가를 위해 cmd에서 sqlplus에 접속해 기존에 가지고 있던 sql파일을 실행하는 작업을 했는데.. 이게 나만 안되는 것이었다..
다양한 시도 끝에 오류 수정 성공.. 나중에 또 이런 에러가 발생할 수도 있다는 생각이 들어서 메모해놓는 중.
일단 첫번째 오류는
SQL>@c://경로/하위경로/file.sql
sp2-0310 : unable to open file
sql 파일 실행문을 입력했을 때 밑에 바로 sp2-0310 에러가 나는 것이었다.
이 부분은 캡쳐해놓지 않아서 말로만 써야겠다.
sp2-0310 해결과정
1. 쿼리문에 뭔가 오류가 있나 싶어서 한줄 복사해서 sqlDeveloper에 넣어봤더니 문제 없이 추가되는 것을 확인했다. 쿼리문 문제는 아닌 것을 확인 후 rollback.
2. sql파일을 새로 작성했다. 그래도 sp2-0310 오류가 발생했다.
3. 인터넷에 찾아보니 sql파일이 있는 경로에서 sqlplus를 실행해보라고 해서 디렉토리 변경 후 다시 실행
> cd c://해당경로/하위경로
> c://해당경로/하위경로>sqlplus
- username, password 입력
@해당파일.sql
4. 그랬더니 갑자기 뭔가가 실행되기 시작했다. 이후로는 cd를 해당 경로로 설정해주지 않더라도 실행이 잘 되었다.
cmd 창을 닫았다 열어도 그냥 실행이 됐다.
이유가 뭔지 모르겠다.
어쨌든.. 그렇게 sp2-0310 에러는 해결했다.
그런데 갑자기 ..
다른 오류가 팡팡 터졌다.
1. 한글이 다 깨져서 나왔다.
해결법 : 인코딩을 UTF-8에서 ANSI로 바꿔주는 것을 깜빡했다.
>> 바로 해결되었다.
2. ORA-00911 에러
ERROR at line 1:
ORA-00911: invalid character
쿼리문을 잘못쓴 것 같았다. 뭘 잘못 쓴거지 싶었는데 의외로 어이없는 오류였음을 발견...
들어가지 말아야 할 곳에 세미콜론(;)이 들어가있었다.
아까 sql 파일을 새로 만들면서 입력을 잘못했던 것 같다.
sql 파일을 메모장으로 열고 모두 바꾸기 수정작업을 해주었다.
3. ORA-01756 에러
ERROR:
ORA-01756 : quoted string noe properly termianted
인용부호에 문제가 있다는 건데.. 뭐지?
자세히 보니까 단일 인용부호(작은따옴표 ')를 하나만 붙였더라.
바보같은 실수입니다..
마찬가지로 메모장에서 SQL 파일을 열고 바꾸기를 이용해 전체 쿼리문에 작은따옴표를 추가해주었다.
); 를 '); 로 모두 바꾸기.
4. 실행
>> 해결되었다. commit.
커밋 후 SQLDeveloper에서 데이터가 잘 들어갔는지 확인해보았다.
문제없이 잘 입력되어 있었다.
※ 기록용으로 남기는 글이긴 하나 혹시나 잘못된 부분이 있다면 말씀해주세요.
'Dev > SQL' 카테고리의 다른 글
[프로그래머스, Oracle] 저자별 카테고리별 매출 집계하기 (0) | 2024.04.29 |
---|