IT 에 오랜시간 몸담고 있습니다.
IT 는 개발 트렌드에도 민감해야 하는 부지런함이 필요한 직군인것 같습니다.
저도 여전히 지속적으로 공부하고 있습니다.
제가 가진 소소한 지식이 또 다른 누군가에게 도움이 되면 좋겠습니다.
講義
受講レビュー
- 開発者向け ORACLE 入門
- Oracle PL/SQL これだけ.. [概念+実践]
- 開発者向け ORACLE 入門
- Oracle PL/SQL これだけ.. [概念+実践]
投稿
Q&A
DECLARE 오류
안녕하세요. 해당 오류 나는 부분의 전체 구문을 올려주시면 바로 확인하도록 할게요.
- 0
- 2
- 34
Q&A
commit시점은 어떻게 되나요?
안녕하세요. 질문의 내용이 정말 실무에서 발생하는거라 좀 긴 답변이 되겠지만 제 생각을 말씀 드려 봅니다.(아래 AI도 정말 좋은 답변을 했네요.) 1.커밋시점이 언제인지 궁금합니다. PL/SQL 모두 수행 후?-> 아주 특이한 경우가 아니라면 commit/rollback 의 시점은 전체 수행이 완료되고 진행해야 합니다. 당연하겠지만 데이타의 정합성 측면에서 아주 중요합니다. ex) 누군가가 어떤 프로시저를 만들때 commit 을 마지막에 넣게된다면, 해당 프로시저를 호출해서 사용하는 다른 프로시저는 트랜잭션 처리에 큰 문제가 생기기 때문에 정말 아주 특이한 경우가 아니라면 호출하는 프로그램에서 트랜잭션 처리를 해야 합니다. 2.대용량처리시 전체 쿼리 수행 후 커밋을 찍는게 나을지 아니면 for문 돌면서 중간중간 커밋을 찍는게 나을지-> 이부분이 실무에서도 상당히 케이스바이케이스 입니다.프로시저에서 insert/update/delete 처리를 대량(대량의 정의도 애매한데, 제가 다루는 DB는 보통 10만건 정도로 생각합니다.) 만일 100 만건에 대한 처리를 하는 패키지(프로시저)를 생성해서 작업을 하게 되면 트랜잭션 처리가 끝날때까지 자원을 잡게되어 실제 문제가 발생하는 경우도 있습니다. 이럴때는 경우에 따라서 for 문 중간에 1만건씩 처리시마다 commit 처리를 하기도 합니다. 단, 오류가 발생하게 되면 큰 문제가 되기 때문에 오류가 발생하는 부분을 exception 처리로 log 를 남기거나, 별도 테이블에 값을 넣어서 오류를 확인하고 오류건만 처리하는 경우도 있습니다.혹시 실무에서 DB를 만지시고 계신다면 어떤 상황에서는 전체 처리를 해야 하고 어떤 상황에서는 전체가 아니더라도 처리 되는 부분만 처리되도록 하는 상황을 이해하실거라 생각합니다.3.cursor로 중간에 insert중 에러났을 때 전체 롤빽이 되는것인지. 아니면 커밋을 찍지 않아도 자동으로 1000건정도 커밋이 되는것인지.-> 2번 답변을 참고하시구요 pl/sql 처리에서 자동 커밋이란 없다고 생각해야 합니다. 자동 커밋은 그 자체로 너무 위험하니까요. 실행하는 사람이 알지 못하는 상황에서 commit 이 되어 버린다면 데이타가 꼬이는 상황이 발생할 수 있습니다.참고로, 오라클 DB는 자동으로 트랜잭션 처리를 하지 않습니다. 그래서, 툴을 사용하다보면 트랜잭션 처리를 하지 않고 시스템을 종료하려고 하면 commit/ rollback 을 하라는 메세지가 나옵니다.따라서 PL/SQL 은 자동으로 commit / rollback 을 하지 않습니다.insert 중간에 오류가 발생하게 된다면 반드시 exception 처리를 통해서 rollback 처리를 해야 합니다. 오라클DB를 다루는데 있어서 트랜잭션 처리는 정말 중요합니다. 잘못처리할 경우 lock 이 걸리면서 큰 장애를 발생시키기도 합니다.그래서, 큰 기업의 경우 DBA를 별도로 두기도 합니다.좋은 질문이어서 저도 답변이 좀 길어졌습니다.제 답변이 부족했다면 추가 질문 주세요 ~
- 1
- 3
- 53
Q&A
트랜잭션 처리의 주체는 누가 될 것인가 에 대해서 궁금합니다.
안녕하세요.실무에서 발생하는 문제를 공유해 주셔서 감사합니다.저는 EBS를 직접 사용하지 않기 때문에 좋은 답변이 될지는 모르겠지만,제 생각을 적어 봅니다.(더존 ERP, SAP 는 다뤄봤지만, EBS는 직접 다뤄본적은 없습니다.)일반적인 웹환경(오라클+Java)이라면 오라클 PL/SQL 의 트랜잭션 관리를 App(자바,파이썬등)에서컨트롤하는게 맞겠지만,말씀하신 EBS ERP의 PL/SQL이 내부에서 트랜잭션 처리를 하고 있다면외부(Java)에서 해당 EBS의 PL/SQL을 호출할때 Java에서 트랜잭션의 컨트롤을 하는건 사실상 어렵습니다.예전에는 제공되는 패키지(EBS)를 수정하여 커스터마이징 하는 경우도 본적이 있지만,제 개인적으로는 제공되는 ERP 패키지는 그 원본으로 보존하는게 맞겠다는 생각입니다.(전에 더존 ERP 패키지를 커스터마이징 했다가 뼈저리게 후회한적이 있어서요)도움이 되실지 모르겠지만 나름대로 해결방안을 말씀드린다면1.EBS PL/SQL경우 파라메터를 통해 트랜잭션을 처리하는 API가 있을것으로 생각되는데최대한 API가 있는 부분을 체크해서 사용하는 방안2.PL/SQL 재구현기존 EBS에서 사용하는 프로시저를 그대로 카피해서 사용하는 오라클 PL/SQL 에별도로 생성/커스터마이징 하여 사용하는 방법입니다.저같은 경우는 기존의 PL/SQL의 원본유지를 원칙으로 하기 때문에 이렇게 사용하는 경우가 간혹 있습니다.제 업무 환경과 일치하지 않기 때문에 좋은 답변이 되었는지 모르겠네요.주신 질문으로 저 또한 고민을 해보는 시간이었습니다.감사합니다.
- 1
- 2
- 46
Q&A
oracle 설치 오류
안녕하세요.여기에 있는 내용이 단순해서 Live Sql 사이트를 통해서도 공부는 가능합니다.하지만, 계속적인 공부를 위해서는 설치를 하시고, DBMS 툴을 사용하는것도 큰 공부입니다.
- 0
- 2
- 47
Q&A
oracle 설치 오류
안녕하세요.제 생각에는 DB를 처음 공부하시는 분이라면오라클 설치없이 수강하는건 크게 의미가 있어보이지 않습니다.설치를 하시고 공부하실것을 추천 드립니다.
- 0
- 2
- 59
Q&A
PL/SQL을 사용하면 어떤 장점이 있나요?
안녕하세요. 강의를 듣고 세심한 피드백/질문에 감사 드립니다.말씀하신 내용 정말 저도 공감하는 부분입니다. 강의를 만들때마다 처음 접하시는 분들이 이런 부분들을 궁금해 할거다 라는 생각을 왜 못했을까 저 스스로도 뒤늦게 아쉬움이 남곤 합니다. 글이 길어지겠지만, 이곳에 그래도 답변을 드려 보겠습니다.결국 PL/SQL을 사용하면 애플리케이션을 사용하는 것 보다 어떤 장점이 있고, 어떤것을 기준으로 2가지의 선택지 중에서 택해야 하는지에 대한 설명이 없어요 ㅠ-> PL/SQL 은 그 자체로 독립적인 프로그램 입니다.이 프로그램을 어플리케이션에서 가져다 사용할수도 있고, 직접 DB(Toad, SQLDeveloper, SqlPlus)에서 콜해서 사용도 가능하구요. 상황에 따라 어떻게 사용할지는 사용자의 선택인데, 최근에는 어플리케이션에서 PL/SQL을 호출하기 보다는 직접 프로그램(Java 등) 단위에서 프로그램을 작성하는 추세입니다. 하지만, 전산실 자체적으로 어플리케이션이 아닌 내부 운영업무에서 주문등의 처리를 해줘야 할 경우가 발생합니다.(제 경험상 생각보다 빈번히 발생합니다.)이럴경우 전체 주문프로그램 프로세스를 PL/SQL 에 작성하면 정말 편하게 운영이 가능합니다.PL/SQL을 쓰면 도대체 왜 좋나요? 이를테면 디비 커넥션 하나에 한방쿼리 만들어서 쏙 보내면 속도 빨라져서 좋은것인가요? -> 네 맞습니다. PL/SQL 을 사용하면 해당 프로시저를 한번 콜하면 DBMS 내부에서 프로그램이 실행되어 처리 속도가 빨라지게 됩니다. 또한 어플리케이션 프로그램도 단순해지구요. 하지만, 이럴경우 개발자가 오류등이 발생할때 PL/SQL 관련해서 담당자에게 확인을 해야 하는 번거로움등으로 최근에는 어플리케이션에 넣어서 사용하는 경우는 줄어들고 있습니다.하지만, 내부 운영에서는 편하게 사용할 수 있는 부분이라 여전히 매력적이라 생각합니다.그리고 실무 경험에 대한 노하우도 조금 더 담겨 있었으면 좋겠어요, 배치프로그램? 스케줄러? 등등 이요ㅎㅎ 대강 감으로는 알겠는데 살짝 궁금해서 간지러워요 ㅎㅎ-> 궁금하신 부분들은 좀더 강의를 보면서 익히시다보면 감을 잡으실 수 있지 않을까 생각합니다.PL/SQL 을 내부 운영한다는건 어쩌면 DB를 직접 만지는것과 같기 때문에 상당히 강력한 도구입니다.부족하지만, 제가 실무에서 운영하는 부분의 엑기스를 다 넣었다고 생각하는데, 잘 전달이 되면 좋겠습니다. 그리고 이것 저것 대명사 보다는 조금더 구체적인 단어로 설명해 주시면 좋겠어요, "쏙 보내면" 어디에 쏙 보내는지를 초보자는 몰라요 ㅎㅎ-> 출근하면서 다시한번 해당 강의를 들어보았는데, 말씀하신대로 좀더 자세하고 친절하게 설명하면 좋았을걸,, 왜 저렇게 뭉퉁그려서 설명했나 싶네요.. ㅜㅜ아마도 PL/SQL 강의를 들을 정도면 이해할 수 있지 않나 하는 저의 착오였다는 생각이 드네요. 오늘 하루 반성하도록 하겠습니다. ^^;관심을 갖고 이렇게 질문을 주셔서 감사합니다. 즐거운 하루 되세요 ~~
- 1
- 2
- 113
Q&A
Oracle 11g에서의 association 활용
강의에 대해 부족한 부분을 설명해 주셔서 감사합니다.11g 에서도 거의 다른 부분은 없을거라 생각했는데, 문제 되는 부분을 AI 툴까지 활용해서 해결하시다니 멋지시네요 ^^
- 1
- 1
- 112
Q&A
zip파일 다운받아서 풀었는데도 계속 오류가 생기네요
현재 진행중인 프로젝트를 zip 파일로 보내주시면 확인해 보도록 하겠습니다.이게 가장 빠른 해결 방법인것 같아요 ~ good.dhkim@gmail.com 으로 보내주세요
- 0
- 2
- 116
Q&A
가격 수정만 자꾸 에러페이지로 갑니다...ㅜ
안녕하세요.해당 오류는 쿼리문 오류로 예상되며, 파라미터 값이 넘어갈때 예상치 못한 값이 넘어갔을것으로 예상됩니다. 파라미터의 값을 로그를 통해 확인해보시고 해당 쿼리문에 직접 대입해 보시는게 가장 빠른 해결책일듯 합니다. 파라미터의 값이 넘어올때 1> 의 문자로 넘어온것 같습니다.
- 0
- 2
- 167
Q&A
File imprt 어떤거 해야하죠?
안녕하세요.전체 소스를 봐야지 어떤 문제가 있는지 확인이 가능할것 같습니다.프로젝트를 압축해서 메일로 보내주시면 확인하도록 하겠습니다. good.dhkim@gmail.com 입니다.
- 0
- 1
- 87