본문 바로가기

분류 전체보기

(197)
[ABAP] SELECT ~ FOR ALL ENTRIES IN <ITAB> 데이터베이스에서 데이터를 SELECT해올 때 INTERNAL TABLE에 있는 데이터와 비교하여 INTERNAL TABLE에 있는 데이터 기준으로 WHERE절 조건이 맞는 데이터만 검색해 온다.예시 코드 이와 같은 방법으로 사용할 수 있는데,FOR ALL ENTRIES IN 문구를 사용할 때 주의점이 있다.FOR ALL ENTRIES 이후의 인터널 테이블과 INTO 뒤의 테이블은 동일해도 된다.테이블의 내용은 FOR ALL ENTRIES로 평가된 이후 INTO 절로 덮어 씌워진다.WHERE의 조건이 인터널테이블의 필드와 비교대상 테이블의 필드타입이 같아야 한다.인터널테이블의 중복된 값은 하나만 남는다. (DISTINCT)필드값이 중복될 경우 자동으로 중복제거되어 원하는 결과를 받아오지 못할 수 있으니 중..
[ABAP/Error Log] 다운로드한 엑셀 서식 에러 메시지(복구) 처리 엑셀 업로드 프로그램을 만들기 위해 SMW0 web repository에 엑셀 서식을 등록했다. 프로그램을 통해 등록한 서식을 다운로드하여 열어본 결과 아래와 같은 에러 메시지가 발생했다. 이 에러에 대한 세부 로그를 확인해 본 결과 파일에 오류가 있다는 내용만 확인이 가능했다. 어떤 게 문제인지 알 수 없어 SMW0에서 등록한 서식을 삭제 후 다시 등록했지만, 같은 문제가 계속 발생했다. 검색해도 어떤 게 문제인지 알 수 없었고, 선임님께 물어본 결과 확장자 때문에 그럴 수 있다는 답변을 받았다. 확장자가 엑셀 통합문서 형식인 *.xlsx는 호환성 문제 때문에 위와 같은 오류 메시지가 나타나기에 *.xls 형식으로 파일을 생성해 SMW0에 파일을 등록하고 다운로드하면 문제가 없다는 것이다. 그래서 서식..
[ABAP] INITIAL VALUE ABAP DICTIONARY에서 테이블을 조회하면 볼 수 있는 INITIAL VALUE 테이블의 필드 속성 중 하나인 INITIAL VALUE는 테이블을 생성할 때 체크 표시를 하면 NULL값이 아닌 초기값을 가지게 한다는 의미이다. 즉, NULL값을 허용하지 않는다는 뜻이다. 그렇다면 NULL과 INITIAL VALUE의 차이점은 무엇일까? NULL (無) Initial Value (有) 값이 존재하지 않는 것으로 메모리 공간을 점유하지 않음 할당, 연산, 비교할 수 없는 대상 OPEN SQL에서 IS NULL, IS NOT NULL 사용 가능 0, ‘’, ‘ ‘, SPACE, 공백과 같은 값으로 표현할 수 없음 값이 존재하는 것으로 메모리 공간을 점유함 할당, 연산, 비교가 가능한 대상 IS INIT..
[ABAP] 텍스트 테이블(Text Table) 찾기 T-CODE : SE11에서 테이블 조회 후 위 그림과 같이 상단의 메뉴바에서 GOTO -> TEXT TABLE 선택하면 해당 테이블의 텍스트테이블로 이동된다.
[Java] 추상 클래스 추상적이다라는 것은 구체적이지 않고 막역한 것을 뜻한다. 그렇다면 추상 클래스(abstract class)는 구체적이지 않은 클래스를 말한다. 추상 클래스는 항상 추상 메서드를 포함하는데, 추상 메서드는 구현 코드가 없다. 함수의 구현 코드가 없다는 것은 함수 몸체(body)가 없다는 뜻이다. int add(int x, int y) { return x + y; // { } 안의 내용이 함수 몸체 } 중괄호 { }로 감싼 부분을 함수의 구현부(implementation)이라 하는데, 이 부분이 없는 함수는 추상 함수(abstract function)이고, 자바에서는 추상 메서드(abstract method)라고 한다. abstract int add(int x, int y); 추상 메서드는 위와 같이 선언만..
[MySQL] 관계형 모델 관계형 모델을 기반으로 작성된 데이터베이스가 '관계형 데이터베이스'이다. SQL은 관계형 모델에 의해 구축된 데이터베이스를 조작하는 체계적인 명령의 집합이지만, 관계형 모델에서 사용하는 용어와 SQL 용어는 일치하지 않다. 관계형 모델(Relational Model)의 기본적인 요소는 릴레이션(Relation)이다. 릴레이션이라는 말 자체가 관계를 뜻하지만 SQL에서는 테이블에 해당한다. 관계형 모델의 릴레이션에는 몇 가지 속성(Attribute)이 있는데 이는 SQL에서 열에 해당한다. 그리고 SQL에서의 행은 관계형 모델에서 튜플(tuple)이라 부른다. 관계형 모델은 데이터 구조에 관해 정의한다. 릴레이션은 튜플의 집합이며, 릴레이션에 대한 연산이 집합에 대한 연산에 대응된다는 이론을 관계대수라 한..
[MySQL] 테이블 결합 - JOIN 보통 데이터베이스는 하나의 테이블에 많은 데이터를 저장하지 않고 몇 개의 테이블로 나누어 저장한다. 이렇게 여러 개로 나뉜 데이터를 하나로 묶어 결과를 내는 방법이 테이블 결합이다. 여기서 결합을 이해하는 동시에 기본이 되는 개념이 집합론의 '곱집합'이다. 곱집합은 합집합이나 교집합처럼 집합의 연산 방법 중 하나이다. 두 개의 집합을 곱하는 연산 방법 으로 '적집합' 또는 '카티전곱(Cartesian product)'라고도 불린다. 데이터베이스의 테이블은 집합의 한 종류라고 할 수 있다. SELECT 명령에서 FROM 구에 테이블을 두 개 지정하면 이들은 곱집합으로 계산된다. 실행결과, 야구의 대진표처럼 집합이 계산된 것을 알 수 있다. FROM구에 복수의 테이블을 지정하면 교차결합(Cross Join)..
[Java] 다운 캐스팅과 instanceof 다운 캐스팅 : 상위 클래스로 형 변환되었던 하위 클래스를 다시 원래 자료형으로 형 변환하는 것 다운 캐스팅을 하기 전에 상위 클래스로 형 변환된 인스턴스의 원래 자료형을 확인해야 변환할 때 오류를 막을 수 있다. 이를 확인하는 예약어가 instanceof이다. Animal hAnimal = new Human(); if(hAnimal instanceof Human) { // hAnimal 인스턴스 자료형이 Human형이라면 Human human = (Human)hAnimal; // 인스턴스 hAnimal을 Human형으로 다운캐스팅 } 위처럼 사용이 가능한데, 코드에서 사용한 참조 변수 hAnimal은 원래 Human형으로 생성되었다가, Animal형으로 형 변환되었다. instanceof 예약어는 왼쪽..