에러메시지


 Unknown  error 0x800A03EC





WiseGird에서 데이터들을 엑셀로 저장을 하려고 하니 오류가 떴다.


구글링을 해본 결과 굳이 내가 사용한 WiseGrid에서의 문제가 아니라


다른 데이터를 엑셀형태로 바꿀 때 생기는 에러 인것 같다.






원인


처음보는 에러여서 구글링 해보니 데이터를 엑셀화 할 때 생기는 접근오류? 라고 한다.


WiseGrid(인터넷) 상에서는 자세한 내용을 알 수 가 없었다.


그래서 내가 엑셀로 만들 데이터를 Microsoft Excel를 실행하여 복사 붙여넣기를 해봤다.







위와 같은 오류가 뜬다. 원인은 행또는 열이 초과 되었다는 말이였다.



 파일의 행이 1,048,576개 또는 열이 16,384개를 초과합니다.

 Excel에서는 1,048,576개의 행과 16,384개의 열 제한을 초과할 수 없습니다.



나 같은 경우 자세한 원인은 위와 같다.


행은 여유가 있으나 열이 많아서 이런 오류가 발생한 것이다.


혹시 다른 원인도 있나 찾아보았는데, 다른 블로그 내용을 참조했다. 



참고해서 도움이 되었으면 좋겠네요! 헤헤



 HRESULT: 0x800A03EC 

 이 오류코드는 ‘접근오류’를 의미한다

 Cells에 1 미만의 Index를 지정했을 때 (반드시 1부터 시작)

 Excel 2003 문서는 최대 256개 Column, 65,536개 Row까지 지원함 (2007부터는 최대 16384개 Column, 1,048,576개 Row를 지원)

 Cell에 Lock이 걸려 있는 등, 쓰기 불가 상태인 경우 

 병합된 셀은 반드시 해당 Cell의 첫 번째 Row Index, Column Index를 통해 접근해야함 

 (예: A3부터 B5까지 병한한 셀은 반드시 A3로만 접근해야 함)

 셀의 내용은 = 문자로 시작할 수 없음. ‘=으로 치환이 필요

 엑셀문서의 경로는 반드시 존재해야 하며, 경로문자열은 유효해야 함

 Worksheet이름 지정 시 다음 명명규칙을 위배했을 때

 31자 이하로 작성할 것 

 특수문자 \ / : *[ ]는 허용되지 않음

 이름은 공란으로 둘 수 없음

 특수문자 ‘만 입력한 경우

 


출처 : http://nsinc.tistory.com/125






해결방법



 

 이 문제를 해결하려면 Microsoft Word 같은 텍스트 편집기에서 원본 파일을 열고 행 및 열 제한을 벗어나지 않도록 원본 파일을 여러 개의 작은 파일로 나누어 저장한 다음 각 파일을 Microsoft Excel에서 여십시오. 원본 데이터를 텍스트 편집기에서 열 수 없으면 데이터를 Microsoft Access로 가져온 다음 Access에서 Excel로 데이터를 내보내십시오.

탭으로 구분된 데이터를 붙여 넣으려는 영역이 너무 작습니다. 이 문제를 해결하려면 구분된 항목을 모두 넣을 수 있도록 워크시트에서 충분한 영역을 선택하십시오. 



해결방법은 간단하다. 


접근오류가 발생하게 된 이유를 찾아 해결해주면 된다.


나같은 경우는 열이 초과되어 있는 상태이므로


여러 시트에 데이터를 나눠서 보관해서 해결하였다.








에러메시지




ORA-38104: ON 절에서 참조되는 열은 갱신할 수 없음: "IVAL"."COIL_NO"



오 이건 또 무엇인가? 





원인


원인은 간단하다. 에러메시지에 답이 있다!


ON절에 있는 참조되는 열은 갱신을 하지 말라고 오류를 뱉어 낸 것 이다.


나의 소스에서는 ON절에 COIL_NO, COIL_T, TEST_SEQNO가 들어 있다.



그리고 갱신 이라는 말은 UPDATE를 가르킨다. INSERT를 갱신이라고 하진 않으니까


보면 UPDATE문에 COIL_NO, COIL_T, TEST_SEQNO가 업데이트가 되는 것을 확인 할 수 있다.


아래 쿼리에서 굵게(Bold)된 글씨를 보자. 





MERGE INTO TB_XXXXXXXXXXXXX IVAL 

     USING (SELECT :P01_COIL_NO             AS  COIL_NO                 

                   ,:P02_COIL_T                      AS  COIL_T                    

                   ,:P03_TEST_SEQNO        AS  TEST_SEQNO            

                   ,:P04_TENSILE_STRENGTH     AS  TENSILE_STRENGTH   

                   ,:P05_TENSILE_STRENGTH2   AS  TENSILE_STRENGTH2  

                   ,:P06_YIELDPOINT               AS  YIELDPOINT             

                   ,:P07_YIELDPOINT2             AS  YIELDPOINT2            


      FROM DUAL) GVAL

        ON (IVAL.COIL_NO = GVAL.COIL_NO AND IVAL.COIL_T = GVAL.COIL_T AND IVAL.TEST_SEQNO = GVAL.TEST_SEQNO)

      WHEN MATCHED THEN UPDATE SET   

                                     IVAL.COIL_NO               = GVAL.COIL_NO

                                    ,IVAL.COIL_T                  = GVAL.COIL_T

                                    ,IVAL.TEST_SEQNO          = GVAL.TEST_SEQNO

                                    ,IVAL.TENSILE_STRENGTH  = GVAL.TENSILE_STRENGTH

                                    ,IVAL.TENSILE_STRENGTH2 = GVAL.TENSILE_STRENGTH2

                                    ,IVAL.YIELDPOINT            = GVAL.YIELDPOINT

                                    ,IVAL.YIELDPOINT2           = GVAL.YIELDPOINT2




위의 쿼리는 잘못 된 것이다. ON절에서 참조되는 컬럼은 수정을 하지 말라는 것이다.






해결방법




MERGE INTO TB_XXXXXXXXXXXXX IVAL 

     USING (SELECT :P01_COIL_NO             AS  COIL_NO                 

                   ,:P02_COIL_T                      AS  COIL_T                    

                   ,:P03_TEST_SEQNO         AS  TEST_SEQNO            

                   ,:P04_TENSILE_STRENGTH     AS  TENSILE_STRENGTH   

                   ,:P05_TENSILE_STRENGTH2   AS  TENSILE_STRENGTH2  

                   ,:P06_YIELDPOINT               AS  YIELDPOINT             

                   ,:P07_YIELDPOINT2             AS  YIELDPOINT2            


      FROM DUAL) GVAL

        ON (IVAL.COIL_NO = GVAL.COIL_NO AND IVAL.COIL_T = GVAL.COIL_T AND IVAL.TEST_SEQNO = GVAL.TEST_SEQNO)

      WHEN MATCHED THEN UPDATE SET   

                                     IVAL.TENSILE_STRENGTH  = GVAL.TENSILE_STRENGTH

                                    ,IVAL.TENSILE_STRENGTH2 = GVAL.TENSILE_STRENGTH2

                                    ,IVAL.YIELDPOINT            = GVAL.YIELDPOINT

                                    ,IVAL.YIELDPOINT2           = GVAL.YIELDPOINT2




쿼리에서 ON절에 참조되어있는 3개의 컬럼을 UPDATE 구문에서 빼주면 된다.






UPDATE문을 MERGE INTO로 변경하다 보니 이런 문제를 찾을 수 있었다.


나처럼 이런일을 겪는 사람이 있을까? 혹시나해서 포스팅 했다!


덕분에 하나 배웠네.



안녕하세요.


상엿입니다. ~.~




오늘의 포스팅 주제는 예비군!


바로 동원훈련 연기하는 방법에 대해서 알아보려구용.








이번에 예비군을 못갈 것 같아서,


예비군 동원훈련연기 하는 방법을 찾아봤습니다!







글을 읽기전에 자신이 한번도 빠진 적 없을 경우..


별다른 문서제출 없이 그냥 미루시면 됩니다.



1차는 훈련에서 무단불참해도 아무런 제재가 없지만,


2차 훈련에는 반드시 참석을 해야하고, 


특별한 사유문서를 제출하지 않으면 


1년이하의 징역 또는 1천만원 이하의 벌금을 받을 수 있습니다.


참고하시길 바랍니다.







저는 직장인이므로 주요업무 사유로 


예비군훈련을 연기했습니다.











주요업무사유로 예비군을 미룰경우 


주요업무수행 확인서를 제출하여아 합니다.


하지만 자세하게 안내가 되어있지 않습니다.


자세한 작성방법은 병무청 홈페이지에 있더라구요.


아래 파일 확인해보시죠.




(자료1) 주요업무 수행 확인서.hwp


(자료2) 작성방법.hwp


(자료3) 작성예시.hwp




출처 : 경기북부병무지청 > 소식·정보 > 자료실







 

 간단한 처리 순서

 


1. 예비군에 로그인하면 뜨는 자신의 소속 동대에 전화를 해서 이런사유로 미룬다고 전화합니다.


2. 사유가 주요업무 수행일 경우 위의 첨부파일 (자료1) 주요업무 수행확인서를 다운로드/인쇄하여 작성합니다.  

   - 작성방법은 첨부파일을 확인하시고, 직인은 회사도장 찍으시면 됩니다.

 

3. 작성하신 (자료1) 주요업무수행확인서를 안내받은 동대 또는 병무청에 팩스로 송부합니다. (소속 동대에 물어볼 것)

   - 개인사업자는 사업자등록증도 팩스로 송부

 

3. 10분 경과후, 소속동대 또는 병무청에 전화를 걸어 팩스가 정상적으로 수신되었는지 확인합니다.

  - 보내신 팩스번호로 확인을 요청하시면 좀 더 신속합니다.

     (예 : 070-1234-5678번으로 접수된 팩스가 있는지 확인해 주세요)

 

4. 접수하신 서류는 담당자 배정 후 순차적으로 처리됩니다.

  - 접수 후 48시간 이내 처리

 

5. 처리완료시 문자로 결과를 통보해 드립니다.

  - 병무청 문자통보를 수신거부로 등록하신 경우는, 통보가 불가합니다.

    (문자통보를 원하시는 경우 문자통보를 해지해 달라고 요청해 주세요)





참고 : 경기북부병무지청 > 소식·정보 > 자료실








정말 귀찮은 예비군...


저는 처음에는 한번은 안가도 되지 하면서도


그래도 신청을 하는게 났지 않을까 해서 찾아보았네요.





이제 5년차인데 내년이면 예비군도 끝이네요!! 헤헤



이번에 일부로 비오는 날에 훈련을 안한다고 해서


한번 나가봤는데 훈련을 하더라구요 ... 흐윽


얼어죽을뻔 했어요..



예비군일정 확인 잘 하시고


사유에 맞게 대처 잘하시면 되겠습니다.













안녕하세요.




오늘은 엄청난 화재가 인천에 있었습니다.


인천 가좌동 이레화학공장에서 대형화재가 발생한 것입니다.



회사에서 엄청 나게 가까웠는데.. 처음에는 뭐야...연기나네..



생각했지만 시간이 지나면 지날수록 엄청나게 커지더라구요..



약 오전 11시 40분 부터 일어났던 것 같아요.








화학공장이여서 불진화하는데 큰 어려움이 있었다고해요.


진화하는데 섣불리 접근하지 못하여


헬기도 동원대고 서울 경기쪽 소방서에서도 지원요청을 하며


진화를 했다고 합니다..


인명피해가 없어야하지만, 없지 않을 것 같고 


들리는 말만 해도 벌써 생긴 것 같더라구요..







한 10분뒤에는 저렇게 크게 연기가 커졌습니다.


딱봐도 엄청나느 크기이고, 조금 멀리있는데도 


연기가 이쪽으로 와서 그런지 


플라스틱 타는 냄새인가 몸에 좋지 않은 냄새가 나더라구요..







인천 가좌동 이례화학공장에에 불났다고, 


아이폰으로 경보도 왔어요... 소방차소리도 계속 들리고


장난아니네요..







영상만 봐도 엄청납니다.. 주변회사들은 대피를 했다고 합니다.


저희쪽은 영향이 크게는 없어서 그대로 있네요..







한 2시쯤 상황인데 거이다 진화가 되어서


이제 흰연기 밖에 보이지 않네요.


주변에 다른 공장들도 다 위험한 곳인데,


다행히 추가적으로 사고가 터지진 않은 것 같습니다...






날씨가 건조하여 이런 화재가 발생한 것 같은데,


아직 자세한 원인은 밝혀지지 않았지만


인명피해가 적어야 할 텐대요..



















에러메시지




  PLS-00410: RECORD,TABLE 또는 인수 목록에 중복 필드가 허용되지 않습니다 



아니 이게무슨!? 처음 보는 에러다.


간단해보이는데, 간단한 에러가 맞다.


일단 어디서 문제가 생겼는지는 오류를 더블클릭해보자.



그럼 어디서 문제가 생겼는지 힌트를 통해 알 수 있다.




사진은 Orange tool에서 뱉어낸 에러이다.








원인



프로시져 안에 같은 이름으로 중복된 변수가 있어서 발생


저는 vMsg라는 변수가 아래 또 선언이 되어 있어서 발생했습니다.


정말 간단한 것 이였죠.. 전 뭔지 몰라서 검색 후에 알게 되었네요... 











해결방법



변수이름을 바꿔준다. (간단하죠? 헤헤)


vMsg -> vResult





저는 이렇게 바꿔서 컴파일하고,


체크인을 하니까 바로 적용이 되네요.


별 것 아니지만 나중에 또 만날 것 같은 에러네요..

+ Recent posts