[Oracle] 메타데이터 조회(continue..)
Posted on 2021. 5. 11. 10:13
Filed Under DB
..
-- Oracle Version 확인
select * from v$version;
-- 접속계정(현재세션)의 정보 조회
SELECT SYS_CONTEXT('USERENV', 'IP_ADDRESS') -- 접속한IP(The IP address of the client machine.)
FROM DUAL;
-- 테이블 컬럼 정보
SELECT t.TABLE_NAME, tc.COMMENTS, t.COLUMN_ID, t.COLUMN_NAME
,t.DATA_TYPE
||NVL2(t.DATA_LENGTH, '('||TO_CHAR(t.DATA_LENGTH)
||NVL2(t.DATA_PRECISION, ','||TO_CHAR(t.DATA_PRECISION),'')
||')', '') AS DATA_TYPE
,t.NULLABLE, cc.COMMENTS, t.DATA_DEFAULT AS DATA_DEFAULT
,A.POSITION AS PK_ORDER
FROM USER_TAB_COLS t --테이블별 컬럼정보
,USER_TAB_COMMENTS tc -- 테이블 코멘트
,USER_COL_COMMENTS cc -- 컬럼 코멘트
,(SELECT ct.TABLE_NAME, ct_col.COLUMN_NAME, ct_col.POSITION
FROM ALL_CONSTRAINTS ct --제약조건
,ALL_CONS_COLUMNS ct_col --제약조건 컬럼
WHERE ct.CONSTRAINT_TYPE = 'P'
AND ct.OWNER = ct_col.OWNER
AND ct.CONSTRAINT_NAME = ct_col.CONSTRAINT_NAME
) A
WHERE 1=1
AND tc.TABLE_TYPE = 'TABLE'
AND t.TABLE_NAME = tc.TABLE_NAME(+)
AND t.TABLE_NAME = cc.TABLE_NAME(+) AND t.COLUMN_NAME = cc.COLUMN_NAME(+)
AND t.TABLE_NAME = tc.TABLE_NAME(+)
AND t.TABLE_NAME = A.TABLE_NAME(+)
AND t.COLUMN_NAME = A.COLUMN_NAME(+)
AND t.TABLE_NAME IN ('대상테이블명')
ORDER BY t.TABLE_NAME, t.COLUMN_ID;
-- 시퀀스 조회
SELECT * FROM USER_SEQUENCES WHERE SEQUENCE_NAME LIKE '%시퀀스명%';
--제약조건 조회 :CONSTRAINT_TYPE=P(PK)/C(제약조건)
SELECT A.TABLE_NAME, A.CONSTRAINT_NAME, A.CONSTRAINT_TYPE
, B.COLUMN_NAME , B.POSITION
FROM ALL_CONSTRAINTS A
, ALL_CONS_COLUMNS B
WHERE A.TABLE_NAME = '테이블명'
AND A.CONSTRAINT_TYPE = 'P' --P(PrimaryKey)|C(제약조건)|..
AND A.OWNER = B.OWNER
AND A.CONSTRAINT_NAME = B.CONSTRAINT_NAME
ORDER BY B.POSITION;
--프로시저 내용 검색
SELECT T1.OBJECT_ID, T1.OBJECT_NAME, T1.OBJECT_TYPE, T2.TEXT
FROM USER_OBJECTS T1
INNER JOIN USER_SOURCE T2
ON T1.OBJECT_NAME = T2.NAME
WHERE T1.OBJECT_TYPE IN ('PROCEDURE')--, 'FUNCTION')
AND T2.TEXT LIKE '%EXECUTE%' /* 검색어 */
;
--CREATE TABLE 컬럼정의 구문 뽑기
SELECT COLUMN_NAME||' '
||DATA_TYPE||CASE DATA_TYPE WHEN 'NUMBER' THEN DECODE(DATA_LENGTH, 22, '', '('||DATA_LENGTH||')')
WHEN 'VARCHAR2' THEN '('||DATA_LENGTH||')' END
||DECODE(NULLABLE, 'Y', ' NOT NULL ', '')||', '
FROM USER_TAB_COLS WHERE TABLE_NAME = '테이블명';
/* REF_VALUE_18 VARCHAR2(100) NOT NULL ,
REF_VALUE_19 VARCHAR2(100) NOT NULL ,
REF_VALUE_20 VARCHAR2(100) NOT NULL , */
--INSERT문 컬럼목록 만들기
SELECT LISTAGG(COLUMN_NAME, ', ') WITHIN GROUP (ORDER BY COLUMN_ID)
FROM USER_TAB_COLS WHERE TABLE_NAME = '테이블명';
[윈도우10] IP 자동변경하는 배치 스크립트
Posted on 2020. 12. 17. 15:40
Filed Under 잡다구리/COM사용기
PC하나로 2가지 망을 사용하려니 바꿀때마다 설정하기가 번거로워서 만들었음.
랜선 바꿔끼고 스크립트 실행하니 좀 편함.
@echo off
@REM 만든날짜: 2020.06.15 (윈도우10기반)
@REM Updated: 2020.12.17
@REM 필요없는 부분은 앞에 REM 을 붙여서 주석처리하면됩니다.
@REM 네트워크명 찾기:>netsh interface ipv4 show interface
@REM 2 35 1500 connected 이더넷
@REM IP/Gateway/DNS/MAC수정 - 2020.06.15 (윈도우10기반)
@REM 아래 설정값을 내 정보로 수정해서 사용하세요!
@REM 아래 설정값중 [_REG_PATH_] 레지스트리 끝 주소는 레지스트리편집기 열어서 확인하고 수정할것 [001이 아닐 수 있음]
SET _NETWORK_NAME_=이더넷
SET _IP_=■■■.■■■.■■■.■■■
SET _GATEWAY_=■■■.■■■.■■■.■■■
SET _NETMASK_=255.255.255.0
SET _DNS1_=■■■.■■■.■■■.■■■
SET _DNS2_=■■■.■■■.■■■.■■■
SET _REG_PATH_=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e972-e325-11ce-bfc1-08002be10318}\0001
SET _MAC_=①②③④①②③④①②③④
@REM ▼ 처리순서 요약
@REM 1) IP/GATEWAY/MASK 설정
@REM 2) DNS 설정
@REM 3) MAC주소 변경하기
@REM 4) 네트워크 연결=사용안함.
@REM 5) 3초 대기
@REM 6) 네트워크 연결=사용함.
netsh -c int ip set address name=%_NETWORK_NAME_% source=static address=%_IP_% mask=%_NETMASK_% gateway=%_GATEWAY_%
@REM echo # DNS를 설정합니다.
@REM netsh -c int ip set dnsservers %_NETWORK_NAME_% static %_DNS1_% primary
@REM netsh -c int ip set dnsservers %_NETWORK_NAME_% static %_DNS2_% secondary
reg add %_REG_PATH_% /v NetworkAddress /d %_MAC_% /f
echo # 네트워크연결 [%_NETWORK_NAME_%]을 재시작합니다.
netsh -c int set interface name=%_NETWORK_NAME_% admin=disabled
timeout /t 2
netsh -c int set interface name=%_NETWORK_NAME_% admin=enabled
echo # 설정완료
파일읽어서 String 얻기(File,InputStreamReader,BufferedReader)
Posted on 2020. 11. 25. 18:02
Filed Under Programming/Java
//파일읽어서 String 얻기
public String getZoneFileToString(String filePath)
{
if (filePath == null || "".equals(filePath)) {
System.out.println("파일경로 입력바람 오바!!");
// throw new AssertionError();
return null;
}
StringBuffer strBuffer = new StringBuffer();
InputStreamReader inputStReader = null;
BufferedReader reader = null;
String line = null;
File file = new File(filePath);
if(!file.exists()){
System.out.println("해당 파일경로의 파일이 없음!!");
return null;
}
try {
inputStReader = new InputStreamReader(new FileInputStream(file), "euc-kr");
reader = new BufferedReader(inputStReader);
while (true) {
line = reader.readLine();
if (line == null) {
break;
}
strBuffer.append(line);
strBuffer.append("\n");
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (reader != null) reader.close();
if (inputStReader != null) inputStReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return strBuffer.toString();
}
[Eclipse] 잦은 Permgen space 에러 때문에 괴로울때 조치
Posted on 2020. 11. 19. 10:49
Filed Under Web Programming/개발환경
잦은 PermGen space 에러...
보통은 Tomcat Server 재시작하여 처리하였는데..
이클립스 메뉴: Windows > Preferences - Java > Installed JREs
오른쪽 Installed JREs중 사용중인 녀석을 선택하고 [Edit]버튼 클릭 ▼
//Default VM arguments에 메모리 설정 입력:
-vmargs-Xms40m -Xmx256m -XX:MaxPermSize=512m
■정보출처: https://flatsun.tistory.com/569
2020.11.19 ADD,
추가후 아래 오류가 가끔 발생하는듯하다.
좀더 모니터링후 처리예정.
[Eclipse] 실행시 html 한글 깨짐현상
Posted on 2020. 11. 10. 14:28
Filed Under Web Programming/개발환경
▼ 현상
select list에서 한글이 깨져보임.
▼ 추적
- 서버단은 문제 없어보임
- *.js 파일도 utf-8로 인코딩 되어 있음 ☞ [전체]
▼ 처리
eclipse - Windows - Preferences : General > workspace - Text file encoding 이 MS949 기본값으로 되어 있었음.
utf-8로 변경 후 tomcat 재시작!
그래도 그대로일 경우 웹페이지 리로드 (Ctrl+새로고침)이 필요할 수도 있음.
▼ 추가정보
메뉴: Window - Preferences - General > Content Types 에서 JSP,HTML 파일 종류별 기본 인코딩 설정가능!
General > Workspace > Text file encoding을 UTF-8으로 바꿉니다.
General > Content Type
├ Java Class File : Default encoding에 UTF-8 입력후 Update 클릭
├ Text > JSP : 위와 동일
└ Web > CSS Files, HTML Files, JSP Files 모두 : UTF-8