Cute Happy Ghost
본문 바로가기
728x90
SMALL

DB/Oracle16

부적합한 열유형 null 처리방법 출처: https://yamea-guide.tistory.com/entry/MyBatis-Oracle-부적합한-열유형-null-처리-방법-jdbcTypeVARCHAR-안쓰기 [기타치는 개발자의 야매 가이드] [MyBatis] Oracle 부적합한 열유형 null 처리 방법 jdbcType=VARCHAR 안쓰기 Oracle 부적합한 열유형 null 처리 jdbcType=VARCHAR를 사용하지 않고 해결하는 방법 mssql로 만들어진 프로젝트를 Oracle로 마이그레이션 작업을 하던 도중 어마어마한 노가다 작업에 봉착했다 Oracle 사용 yamea-guide.tistory.com 2021. 1. 28.
20201030_ 25시퀀스 문제 및 해결 #1 요구사항 시퀀스 SEQ_BRAND_ID : 100부터 시작하여 100씩 증가, 최대값 1000, 반복 없음. SEQ_PRODUCT_NO : 1부터 시작하여 1씩 증가, 최대값 10000, 반복 없음. CREATE TABLE BRANDS( BRAND_ID NUMBER PRIMARY KEY, BRAND_NAME VARCHAR2(100) NOT NULL ); PRODUCT_NAME VARCHAR2(50) NOT NULL, 50 아니고 20 1. 원인 : product 테이블에 UNIQUE(serial_no)를 요구하고 있으나 걸려있지않음. 조치: ALter Table 테이블이름 ADD UNIQUE(컬럼); ALTER TABLE products ADD UNIQUE(serial_no); 2. 원인 : SEQ.. 2020. 10. 30.
20201030_25 권한부여, 회수, 동의어 계정생성 CREATE USER test01 IDENTIFIED BY 1234; 사용자생성확인 SELECT * FROM DBA_USERS; 권한부여 GRANT CONNECT, RESOURCE TO test01; 사용자를 생성하더라도, 기본권한인 CREATE SESSION이 없으면, 접속할 수 없다. CREATE SESSION을 포함한 기본 롤(권한묶음) CONNECT와 RESOURCE를 부여한다. 사용자 USER_NEW로 접속 CONN test01/1234; 접속됨. CONNECT 스크립트 명령으로 생성된 접속이 해제되었습니다. 접속해제 CONN sys/oracle AS SYSDBA; 커스텀 롤생성 CREATE ROLE manager_role; 세션, 테이블만드는 권한부여 GRANT create sessi.. 2020. 10. 30.
20201029_24 TIMESTAMP DATE형 의 확장된 형태로 밀리초 단위까지 표현 가능한 데이터 타입이다. 명명 규칙 테이블명과 컬럼명을 사용자가 부여할 때 지켜야 하는 규칙이다 - 문자로 시작한다. - 1~30 자까지 가능하다. - A~Z의 대소문자, 0~9의 숫자, 특수기호( _, $, # ) 만 가능하다. - 오라클의 예약어나 다른 객체명과 중복 불가하다. - 공백을 허용하지 않는다 제약조건 CREATE TABLE test_table( id NUMBER, name VARCHAR2(128) CONSTRAINT test_table_nn NOT NULL,--컬럼레벨 --테이블레벨 CONSTRAINT test_table_pk PRIMARY KEY (id) ); ALTER TABLE 테이블이름 ADD CONSTRAINT .. 2020. 10. 29.
20201029_24 순위, 누적, 집계, 조인 #1 SELECT EMPno, ename, SAL, RANK() OVER(ORDER BY sal DESC) 급여순위 FROM EMP; 높은 순서대로 등급 부여 DESC없애주면 기본값인 ASC니까 낮은순서대로 지정하는 값의 순위를 조회하고 싶다면, RANK(순위를 알고자하는 값) 사용 SELECT RANK(50) WITHIN GROUP(ORDER BY sal DESC) AS 순위 FROM EMP; SELECT ename, deptno, SAL, RANK() OVER (ORDER BY SAL DESC) 순위1, DENSE_RANK() OVER (ORDER BY SAL DESC) 순위2, DENSE_RANK() OVER (PARTITION BY deptno ORDER BY sal DESC) 순위3 FROM e.. 2020. 10. 29.
20201028_23 UPDATE, MERGE INSERT ALL WHEN HIREDATE > '2010/01/01' -- 고용일이 '2010/01/01' 이후인 사원 THEN INTO emp_hire VALUES(empno, ename, hiredate) WHEN sal>=2000 -- 급여가 2000 이상인 사원 THEN INTO emp_sal VALUES(empno, ename, sal) SELECT empno, ename, hiredate, sal FROM emp; UPDATE UPDATE emp SEt sal = 1200 WHERE empno = 7369; update할때는 where절 꼭 안해주면 다 업데이트됨 UPDATE emp SET sal = sal * 1.1 WHERE deptno IN (SELECT deptno FROM dept .. 2020. 10. 28.
20201028_23 다양한 함수 #1 별칭붙히기 1. SELECT 컬럼명 별칭, 컬럼명2 별칭 FROM 테이블이름; 2. SELECT 컬럼명 AS 별칭, 컬럼명2 AS 별칭 FROM 테이블이름; 3. SELECT 컬럼명 "별칭", 컬럼명2 “별칭” FROM 테이블이름; 칼럼은 as 다른건 띄어서 큰따옴표는 쓰지않는걸 권함 코드쓸때 헷갈리고 귀찮음 SHOW user 하면 어떻게 접속했는지 알 수 있다 USER이(가) "TEST01"입니다. DESC emp; 이름 널? 유형 -------- -------- ------------ EMPNO NOT NULL NUMBER(4) ENAME VARCHAR2(10) JOB VARCHAR2(9) MGR NUMBER(4) HIREDATE DATE SAL NUMBER(7,2) COMM NUMBER(7,2.. 2020. 10. 28.
20201027_ 23 문제 및 해결2 1 CREATE USER test02 IDENTIFIED 1234; 원인 : by누락 조치 CREATE USER test02 IDENTIFIED BY 1234; 2 GRANT CONNECT,RESOURCE FROM test02; 원인 : FROM을 TO로 바꿔야한다 조치 GRANT CONNECT,RESOURCE TO test02; 3 BOARD_NO 컬럼에 PRIMARY KEY 제약조건 설정. CREATE TABLE MEMBERS ( MEMBER_ID VARCHAR2(20) PRIMARY KEY, MEMBER_PWD VARCHAR2(20) NOT NULL, MEMBER_NAME VARCHAR2(30), MEMBER_AGE NUMBER, MEMBER_EMAIL VARCHAR2(50), CONSTRAINT .. 2020. 10. 27.
20201026_22 문제 및 해결1 1. CREATE test01 IDENTIFIED BY 1234; 원인 : 사용자 계정생성을 위해서 어떤 객체를 생성할지 지정을 해줘야하는데 누락된 부분(user)이 존재 조치내용:user부분이 누락됨. user문구를 생성함 CREATE USER test01 IDENTIFIED BY 1234; 2. GRANT RESOURCE TO test01; 원인 : 사용자 계정으로 접속하기 위한 권한이 누락되었다 조치내용 : 생성된 사용자 계정test01로 db접속이 가능하도록 connect 롤을 추가함 GRANT CONNECT, RESOURCE TO test01; 3. CREATE TABLE MEMBERS ( MEMBER_ID VARCHAR2(20), MEMBER_PWD VARCHAR2(20), MEMBER_NAM.. 2020. 10. 26.
20201026_22 제약조건 DROP TABLE account_info CASCADE CONSTRAINT를 하면 전에 제약조건 걸어놓은것? 까지 다 삭제 ON DELETE CASCADE CREATE TABLE account_info ( id NUMBER PRIMARY KEY, email VARCHAR2(128) NOT NULL, CONSTRAINT account_info_email_uq UNIQUE (email), CONSTRAINT account_info_email_length_chk CHECK (length(email) > 3) ); INSERT INTO account_info(id, email) VALUES(1, 'abc@gmail.com'); SELECT * FROM account_info; CREATE TABLE accou.. 2020. 10. 26.
728x90
LIST