본문 바로가기

전체 글63

[C#] 리플렉션(Reflection), 애트리뷰트(Attribute) 리플렉션 (Reflection) : 런타임에 클래스나 객체의 타입 정보를 조사하는 기능 - 보통 컴파일러에 의해 기계어로 바뀌고 나면 사라지지만, C#은 컴파일된 결과 코드뿐만 아니라 타입에 대한 메타 데이터를 실행 파일에 같이 기록해놓기 때문에 실행 중에도 정보를 조사할 수 있다. - 루트 클래스인 Object에 있는 GetType() 메서드를 통해 얻은 Type 객체를 통해 수행이 가능하다. Type 객체를 얻는 방법 1. 루트 클래스인 Object의 GetType 메서드를 호출한다. - 정적 메서드가 아니므로 객체가 있어야 호출 가능하다. 객체.GetType() 2. Type의 정적 메서드인 GetType 메서드를 호출한다. - 클래스 이름(문자열)으로 정보를 조사하므로 객체가 없어도 호출이 가능하.. 2021. 3. 4.
[Oracle] PL/SQL 반복문 LOOP문 예제1: CREATE OR REPLACE PROCEDURE ex_sum IS l_num NUMBER := 0; l_sum NUMBER := 0; BEGIN LOOP l_num := l_num + 1; l_sum := l_sum + l_num; DBMS_OUTPUT.PUT_LINE(l_num ||' '|| l_sum); EXIT WHEN l_num = 10; END LOOP END; FOR문 예제2: CREATE OR REPLACE PROCEDURE ex_sum IS l_num NUMBER := 0; l_sum NUMBER := 0; BEGIN -- i는 인덱스이고 '시작값..종료값'까지 1씩 증가하면서 반복 FOR i IN 1..10 LOOP l_num := l_num + 1; l_su.. 2021. 2. 26.
[Oracle] 사용자 정의 함수 구문: CREATE [OR REPLACE] FUNCTION 함수명 [(변수 IN 데이터타입)] RETURN 데이터타입 IS -- 선언 BEGIN -- 실행 [EXCEPTION] [EXCEPTION 처리] RETURN (값); END; 예제: -- 사용자 지정 함수 선언 CREATE OR REPLACE FUNCTION tax ( p_salary IN employees.salary%TYPE, p_bobus IN employees.commission_pct%TYPE ) RETURN NUMBER IS BEGIN RETURN ((p_salary + NVL(p_bonus, 0)*100)*0.1); END; %TYPE : 지정한 {테이블.컬럼}의 데이터 타입을 따라간다. 실행: -- 사용자 정의 함수 사용 SELEC.. 2021. 2. 25.
[Oracle] 테이블과 데이터 복사하기 1. 테이블 복사하기 스키마 & 데이터 CREATE TABLE 새로만들테이블명 AS SELECT * FROM 복사할테이블명; 2. 테이블 구조만 복사하기 # WHERE절에 '참'이 아닌 조건을 넣어줌 CREATE TABLE 새로만들테이블명 AS SELECT * FROM 복사할테이블명 WHERE 1=2; 3. 테이블은 이미 생성되어 있고 데이터만 복사 (테이블 구조가 동일할 때) INSERT INTO 복사할테이블명 SELECT * FROM 테이블명; 4. 테이블은 이미 생성되어 있고 데이터만 복사 (테이블 구조가 다를 때) INSERT INTO 복사할테이블명(복사할컬럼1, 복사할컬럼2, 복사할컬럼3) SELECT 컬럼1, 컬럼3, 컬럼3 FROM 테이블명; 출처: applejara.tistory.com/400 2021. 2. 25.
[Oracle] 데이터 사전 데이터 사전 : Oracle Database 내에 저장된 모든 객체의 정보를 제공한다. - Database에서 생성된 모든 데이터 사전 정보는 Dictionary view에서 제공한다. - 오라클은 DDL 작업이 발생할 때마다 데이터 사전의 내용을 업데이트 한다. * 데이터 사전의 내용 - 데이터베이스의 모든 스키마 오브젝트(테이블, View, 시퀀스 등)의 정의 - 스키마 오브젝트에 의해 현재 사용된 공간 - 컬럼들의 기본값 - 제약 조건 정보 - Oracle 사용자 이름 - 각 사용자에게 부여된 권한과 롤 - Auditing 정보 SQL> SELECT COUNT(TABLE_NAME) FROM DICTIONARY; 접두사 ALL_XXX : 특정 사용자가 접근할 수 있는 데이터 사전 USER_XXX : .. 2021. 2. 22.
[Oracle] COMMENT 추가/수정/조회/삭제 COMMENT : 테이블이나 컬럼의 뜻을 저장하기 위해서 사용한다. 테이블/컬럼의 COMMENT 추가 COMMENT ON TABLE 테이블명 IS '코멘트 내용'; COMMENT ON COLUMN 테이블명.컬럼명 IS '코멘트 내용'; 테이블/컬럼의 COMMENT 수정 COMMENT ON TABLE 테이블명 IS '수정할 코멘트 내용'; COMMENT ON COLUMN 테이블명.컬럼명 IS '수정할 코멘트 내용'; 테이블/컬럼의 COMMENT 삭제 COMMENT ON TABLE 테이블명 IS ''; COMMENT ON COLUMN 테이블명.컬럼명 IS ''; COMMENT 조회 - 코멘트를 저장하는 테이블은 아래의 6개 (테이블/컬럼이 각각 3개씩) 테이블명 내용 ALL_TAB_COMMENTS 현재 사용.. 2021. 2. 20.
[Oracle] SQL 단일 행 함수 단일 행 함수 : 함수가 행마다 적용됨 - 숫자 함수 MOD(m,n) : m을 n으로 나눈 나머지를 반환 SELECT MOD(10,3) "Modulus" FROM dual; ROUND(m,n) : m을 소수점 n+1 자리에서 반올림한 결과를 반환한다. SELECT ROUND(12.789,2) "ROUND" FROM dual; - 문자 함수 LOWER(char) : 입력된 문자 값을 소문자로 변환 SELECT LOWER('Hello') "Lower" FROM dual; SUBSTR(str, pos, length) : 문자열 str에서 pos부터 length까지의 문자를 반환 SELECT SUBSTR('Hello World',1,5) "Substr" FROM dual; # Hello 출력 - 날짜 함수 SY.. 2021. 2. 18.
[Oracle] SQL 기본 CREATE : 테이블 생성 CREATE TABLE 테이블명 ( 칼럼명1 데이터타입(사이즈), 칼럼명2 데이터타입(사이즈) ); ALTER - ALTER ADD : 컬럼 추가 / 제약 조건 추가 -- 컬럼 추가1 ALTER TABLE 테이블명 ADD 컬럼명 데이터타입(사이즈) [NOT NULL][DEFAULT '값']; -- 컬럼 추가2 ALTER TABLE 테이블명 ADD(컬럼명 데이터타입(사이즈)); ALTER TABLE 테이블명 ADD PRIMARY KEY(컬럼명); ALTER TABLE 테이블명 ADD UNIQUE(컬럼명); ALTER TABLE 테이블명 ADD FOREIGN KEY(컬럼명) REFERENCES 참조테이블명(컬럼명); ALTER TABLE 테이블명 ADD CONSTRAINT 제약조.. 2021. 2. 18.
[Oracle] Join 조인 명시적 조인 SELECT employees.employee_id, department_name FROM employees JOIN departments ON employees.department_id = departments.department_id; SELECT employees.employee_id, department_name FROM employees INNER JOIN departments ON employees.department_id = departments.department_id; 묵시적 조인 SELECT employees.employee_id, department_name FROM employees, departments WHERE employees.department_id = depa.. 2021. 2. 1.