반응형

 

비밀번호는 맞는데 계속 git not authorized라고 떠서 찾아보니

깃허브에서 인증방식을 토큰 방식으로 변경했다고 한다.

 

결론 : password에 개인 토큰 키를 넣어주면 된다.

 

 

 편-안

반응형
반응형

 

문제 : 다음과 같이 콘솔 창에 뜨면서 응용단(화면)이 옛날 소스로 바껴있을 때 

 

org.apache.catalina.webresources.Cache.getResource [/~myroot]에 위치한 리소스를 웹 애플리케이션 [/]을 위한 캐시에 추가할 수 없습니다. 왜냐하면 만료된 캐시 엔트리들을 없애버린 이후에도 여유 공간이 충분하지 않기 때문입니다. 캐시의 최대크기를 증가시키는 것을 고려해 보십시오.

 

해결 방법 : context.xml에서 아래  코드 한 줄 추가

<Resources cachingAlowed="true" cacheMaxSize="100000" />

<WatchedResource> ... </WatchedResource> 코드 밑에 추가

반응형
반응형

SELECT  INTO

: 원본은 있고 대상 테이블은 새롭게 생성하려 할 경우 사용

 

T라는 테이블에서 모든 데이터를 가져와 T_DUPLICATED라는 테이블을 생성하여 데이터를 INSERT하고 싶다면?

 

 

- T테이블과 같은 컬럼과 데이터를 가지는 T_DUPLICATED라는 테이블이 생성

 

SELECT * INTO T_DUPLICATED FROM T

 

- T테이블의 특정 컬럼만 가져와서 T_DUPLICATED라는 테이블을 생성하여 데이터를 INSERT

SELECT * INTO T_DUPLICATED
FROM (
	SELECT COL1,COL2,COL3.... FROM T 
) AS TEMP

 

 

처음엔 select 문 오타인줄 알았다,,

반응형
반응형

오라클 OUTER JOIN은 (+)으로 표시하는데 이를 표준 SQL로 수정해야기 때문에 정리.

 

 

조인 (INNER JOIN) : 기준 테이블과 조인 테이블 모두 데이터가 존재해야 조회됨

- INNER JOIN : 내부조인 (교집합)

- LEFT/RIGHT JOUN : 부분집합

 

 

1) LEFT JOIN : 조인기준 왼쪽에 있는 것 SELECT (교집합 포함) 

SELECT A.ID, A.ENAME, A.KNAME
FROM A LEFT OUTER JOIN B
ON A.ID = B.ID;

 

2) LEFT JOIN : 조인기준 왼쪽에 있는 것 SELECT  (교집합 미포함)

SELECT A.ID, A.ENAME, A.KNAME
FROM A LEFT OUTER JOIN B
ON A.ID = B.ID;
WHERE B.ID IS NULL

아우터 조인 (OUTER JOIN) : 동일한 값이 없는 행도 반환할 때 사용하는 구문 : 합집합

 

1) 모든 테이블 SELECT

SELECT A.ID, A.ENAME, A.KNAME
FROM A FULL OUTER JOIN B
ON A.ID = B.ID

2) 모든 테이블 -  공통 부분 SELECT 

SELECT A.ID, A.ENAME, A.KNAME
FROM A FULL OUTER JOIN B
ON A.ID = B.ID
WHERE A.ID IS NULL OR B.ID IS NULL

 

 

 

 

 

 

반응형

'DATABASE' 카테고리의 다른 글

[postgresql] 특정 IP/외부 접속 허용 (pg_hba.conf)  (0) 2024.01.08
[SQL] SELECT * INTO문은 무엇인가  (0) 2021.09.17
반응형

개발에 들어가기 앞서 SQL 문을 보면서 익숙하지 않는 ORACLE 함수를 정리해보려고 한다.

 

1. CONCAT, ||

LIKE ('%' || #변수# || '%')

||은 CONCAT과 동일하게 문자열을 합치는 기능을 한다.

 

+) LIKE 함수를 쓸 때 왜 || 를 활용하느냐? 

%#변수#% 이렇게 사용할 수 있지만, SQL INJECTION에 위협이 크기 때문임

 

 

2. DECODE, CASE WHEN

 

DECODE(USE_YN, 'Y', 'Y', 'N')

: if use_yn == "Y" 이라면 Y이고 아니면 N이다.

 

DECODE는 IF ELSE와 같은 기능을 한다.

SQL문에서 통용되지 않기 때문에 CASE WHEN을 사용하는 것을 권장함. 속도도 case when이 더 빠르다고 함

 

(왜 DECODE문과 CASE WHEN 문을 같은 쿼리에 두었는지는 모르겠다,,)

SELECT ename
     , deptno
     , CASE WHEN deptno = '10' THEN 'New York'
            WHEN deptno = '20' THEN 'Seoul'
            ELSE 'Toronto'
       END AS location
  FROM emp

 

3. OVER()

 

분석_함수() OVER(PARTITION BY 컬럼 / ORDER BY 컬럼 / 세부 분할 기준)

 

1) PARTITION BY : Group by와 비슷한 기능

 

 

4. NVL, NVL2

 

1) NVL 함수는 값이 null인 경우 지정값을 출력한다.

- 함수  :  NVL("값", "지정값")

 

2) NVL2 함수는 null이 아닌경우 지정값1을  출력하고, null인 경우 지정값2을 출력 한다.

- 함수 :  NVL2("값", "지정값1", "지정값2")

반응형

'DATABASE > Oracle' 카테고리의 다른 글

[ORACLE] 계층형 쿼리 간단 예제  (0) 2021.08.05
다운로드 링크 사라진 Oracle 11g 설치하기  (0) 2021.08.04
반응형

 

1. JDK 1.8.0_301

*오라클 계정 필요

https://www.oracle.com/kr/java/technologies/javase/javase-jdk8-downloads.html

 

2. Tomcat  8.5.69

 

https://tomcat.apache.org/download-80.cgi

 

Apache Tomcat® - Apache Tomcat 8 Software Downloads

Welcome to the Apache Tomcat® 8.x software download page. This page provides download links for obtaining the latest versions of Tomcat 8.x software, as well as links to the archives of older releases. Unsure which version you need? Specification versions

tomcat.apache.org

 

3. 전자정부 표준프레임워크 3.9.0

 

https://www.egovframe.go.kr/home/sub.do?menuNo=41# 

 

개발환경 - 3.x 다운로드 | 표준프레임워크 포털 eGovFrame

처리중입니다. 잠시만 기다려주십시오.

www.egovframe.go.kr

 

 

4. 오라클(Oracle) 11g

 

https://merry1031.tistory.com/20

 

다운로드 링크 사라진 Oracle 11g 설치하기

오라클은 처음 해보고 무슨 버전을 설치해야하는 감이 안잡히는 상태에서 쓴 글입니다. 19c는 아예 설치가 되지 않고 11g로 돌아 돌아 설치하려고 했으나 설치 링크도 아예 사라진 상태에서 Oracle

merry1031.tistory.com

** 방화벽 1521 포트 열기 (telnet 확인)

** sqldeveloper나 dbeaver 툴 활용

 

 

 

<!-- 여기까지 준비 -- > 

 

1. all-in-one 템플릿 프로젝트 설치

 

메뉴 > egovFrame > Start > New Template Project (Common all-in-one)

 

 Project name / Group id : egovframework-all-in-one

 

**다르게 설정하면 후에 설정한 이름으로 수정해주어야 함 

 

2. 톰캣 연결

tomcat 8.5

 

3. ojdbc6.jar 삽입

 

프로젝트 > src > webapp > WEB-INF > lib에 넣기

ojdbc6.jar : 자바와 데이터베이스간 연결

SQL 쿼리문 전송, 데이터베이스 데이터 삽입, 삭제, 갱신 등의 기능 수행

 

ojdbc6.jar
2.59MB

 

4.  오라클 연동

 

global.properties 수정

# 운영서버 타입(WINDOWS, UNIX)
Globals.OsType = WINDOWS

# DB서버 타입(mysql, oracle, altibase, tibero, cubrid, maria, postgres) - datasource 및 sqlMap 파일 지정에 사용됨
Globals.DbType = oracle

#oracle
Globals.oracle.DriverClassName=oracle.jdbc.driver.OracleDriver
Globals.oracle.Url=jdbc:oracle:thin:@127.0.0.1:1521:orcl
Globals.oracle.UserName = system
Globals.oracle.Password = test

** 다른 DBMS는 주석 처리 

 

Globals.oracle.Url=jdbc:oracle:thin:@IP 주소 입력:SID 입력
Globals.oracle.UserName = 오라클 접속 아이디
Globals.oracle.Password = 오라클 접속 비밀번호

 

 

context-crypto.xml 수정

    <egov-crypto:config id="egovCryptoConfig" 
    	initial="false"
    	crypto="false"
    	algorithm="SHA-256"
    	algorithmKey="egovframe"
    	algorithmKeyHash="gdyYs/IZqY86VcWhT8emCYfqY1ahw2vtLG+/FzNqtrQ="
		cryptoBlockSize="1024"
		cryptoPropertyLocation="classpath:/egovframework/egovProps/globals.properties"
	/>

하단  

initial="true"

crypto="true"

 

initial="false"

crypto="false"  

 

솔트 비밀번호 사용을 하지 않기 위해서 설정 (학습 목적이므로)

 

 

 

context-datasource.xml 수정

 

오라클 부분 찾아서 수정

 

     <property name="password" value="#{egovEnvCryptoService.getPassword()}"/>

     <property name="password" value="${Globals.oracle.Password}"/> 

 

5.  스키마 생성 및 데이터 insert

 

프로젝트(egov) > script > ddl > oracle > com_DDL_oracle.sql  

프로젝트(egov) > script > dml> oracle > com_DML_oracle.sql 

 

실행 후 COMMIT;

 

6. TOMCAT 설정

 

TOMCAT 더블 클릭 후, TIME OUT에서 100s로 시간을 늘려줌 (두칸 모두)

 

 

 

http://localhost:8080/egovframework-all-in-one/

반응형
반응형
입력 출력
\ 에러
\\ \
\' '
\" "
( (
\( 에러
/ /
\/ 에러

 

 

반응형
반응형
/* 계층형 쿼리 간단 예제 */
CREATE TABLE TAB1 (
    C1 VARCHAR2(1),
    C2 VARCHAR2(1),
    C3 VARCHAR2(1) );
    
    
INSERT INTO TAB1 VALUES ('1', NULL, 'A');
INSERT INTO TAB1 VALUES ('2', '1', 'B');
INSERT INTO TAB1 VALUES ('3', '1', 'C');
INSERT INTO TAB1 VALUES ('4', '2', 'D');

SELECT * FROM TAB1;
    
/*ORDER SIBLINGS BY : 계층구조는 그대로 유지하면서
동일 부모를 가진 자식들끼리의 정렬 기준을 주는 것 */
SELECT *
    FROM TAB1
START WITH C2 IS NULL
CONNECT BY PRIOR C1 = C2
ORDER SIBLINGS BY C3 DESC;

 

start with 최상위 노트 설정

connect by 부모 - 자식 노트 연결

 

START WITH C2 IS NULL 

 

>> 1 NULL A

 

CONNECT BY PRIOR C1 = C2

ORDER SIBLINGS BY C3 DESC

 

>> 3 1 C

>> 2 1 B

 

CONNECT BY PRIOR C1 = C2

 

>> 4 2 D

 

 

1 NULL A

3     1     C

2     1     B

4     2     D

반응형