큐브 맞추기

스포츠 2012.06.01 13:01













저작자 표시 비영리 변경 금지
신고

'스포츠' 카테고리의 다른 글

큐브 맞추기  (3) 2012.06.01

Jeus 관리툴

Program/Linux 2011.12.13 10:29
Jeus 관리툴

4.0과 5.0의 Webmanager의 차이점.
4.0 => Jmanager와 Webmanager 가 제공됨
  두개의 기능이 중복되어 역할분리가 제대로 안되어 사용이 어려움.
5.0=> JMX Java Management Exception 의 약자로 WAS 관리하기위한 표준임.
JAXB xml을 자바객체를 통해 접근
배치API추가 J2EE 1.4 이후부터는 모든 WAS가 반드시 API를 구현해야 하게 바뀌었음.

Jeusadmin : Jeusadmin <nodename> -Uadministrator -P<pw>
jeusexit 제우스 종료
boot/down 기동/종료.
nodelist 제우스에서 사용중인 노드의 리스트
pidlist 제우스에서 사용중인 엔진 및 컨테이너의 pidlist
conlist 컨테이너의 리스트(올라온 컨테이너만 나옴)
startcon/ downcon 컨테이너 기동/종료
downbackup 다운할때 백업하는 명령어
reload 모듈을 언디플로이후 다시 디플로이 하는 명령어.
allenglist 모든 컨테이너의 모든엔진리스트 
starteng/ downeng 엔진의 기동/종료
deploy/ undeploy 어플리케이션과 EJB 디플로이/ 언디플로이하는 명령어
applist 어플리케이션 리스트
meminfo 매니져의 메모리정보
dump 덤프뜨는 명령어.
mbeanlist 쿼리보는 명령어.
help 도움말 
exit Jeusadmin 종료

Webadmin : Webadmin container_name -Uadministrator -P<pw>
englist 서블릿엔진의 리스트
engselect 엔진선택
reload 컨텍스트그룹의 리로드
restart 일반적으로 안나옴.
suspend/resume 임시적으로 servlet이나 context를 중지
terminate 서블릿 서비스를 중지하고 context를 제거
clr_stat 상태를 리셋함 
info 서블릿 엔진별 기본정보 (엔진선택하지 않으면 안됨)
st -m 메모리상태확인
-t 스레드상태확인
-r 리퀘스트 상태확인
-s 세션상태확인
-d 일반적으로 안나옴.
ti -li 스레드 리스너 아이디
-r 스레드 리퀘스트정보
-k 반복횟수
-I 반복하는 시간(초)
di -p 데이터베이스 풀 보는 명령어...
cfg 구성화면을 보는 명령어 (Vhost, Listener. Context Group, Log정보등)
set 콘솔환경을 보는 명령어.

저작자 표시 비영리 변경 금지
신고

'Program > Linux' 카테고리의 다른 글

Jeus 관리툴  (0) 2011.12.13
리눅스 ssl 설치  (0) 2008.05.19
Linux 에서 apache , resin 연동  (0) 2008.05.19
리눅스 페도라 에서 마우스 커서가 안보일때  (0) 2008.05.19
subversion(svn) 리눅스 설치  (0) 2007.12.20
리눅스 기본 팁  (0) 2007.06.14

DB2 check list

DB/DB2 2011.08.10 11:23
DB2 check list

1.일일 점검
   1>테이블 스페이스 공간,상태
   2>백업 상태
   3>db에서썼던 액티브 로그 상태
   4>lock 관련(deadlock,lock wait)에 대한 점검
   5>dbm,db cfg의 환경변수 변동사항
   6>패키지 관련 valid상황.
   7>테이블,뷰의 valid상황

2.주간 점검
    1>runstats,reorgchk 상황
    2>select,insert,update,delete 가 빈번한 10개 정도의 테이블 추출
    3>관련 dynaic등 sql 검출 후 실행시간 및 관련 성능이 저하된 쿼리는 없는지등

3.월간 점검
    1>db,tbs 월 증가량 점검.
    2>추후 업그레이드 및 fix상황이 없는지의 검토.
    3>udb 공부
저작자 표시 비영리 변경 금지
신고

'DB > DB2' 카테고리의 다른 글

DB2 check list  (0) 2011.08.10
DB2관련 Processor 들 정리  (0) 2011.08.10
DB2 운영 명령어 모음  (0) 2011.08.10
DB2 기초  (0) 2011.07.15
DB2 SQLSTATE 메시지  (0) 2010.03.16

DB2관련 Processor 들 정리

DB/DB2 2011.08.10 11:23

DB2관련 Processor 들 정리

1. DBMS
 db2wdog
 Watch dog는 다른 Process를 감시하며, 시스템이 비정상 종료 후에 자원을 clear한다.
 
db2sysc
 System controller는 system startup, shutdown, 다른 system 관련 tasks를 handling한다.
 
db2gds
 Generic daemon spawner는 거의 모든 daemons을 생성
 
db2ipccm
 local로부터의 connection 요구를 취급한다.
 
db2tcpcm
 Remote client로부터의 tcpip 연결 요구를 취급한다.
 
db2tcpim
 Remote client로부터 interrupt request에 대한 요구를 취급한다.
 
db2snacm
 Remote client로 부터 appc connection 과 interrupt request요구를 취급한다.
 
db2resyn
 DUOW에 대한 transaction 의 recovery를 취급한다.
 
db2ipxcm
 Remote client로부터 interrupt request와 ipx/spx 연결을 다룬다. (미사용 protocol로써 설정되어 있지 않음)
 
2. DB
 db2agent
 application에서 요구하는 모든 sql을 처리한다.
 
db2dlock
 특정 database에 대한 deadlock을 감시하고 해결한다.
 
db2loggr
 특정 database에 대한 모든 log i/o를 처리한다.
 
db2pfchr
 미리 읽고. Block 단위 읽기, parallel i/o를 통하여 보다 효율적인 처리를 가능하게 한다.

-디폴트로 3개가 지정되었으며, num_ioserver에서 개수를 변경하여 지정할 수 있다.
 
db2pclnr
 disk로 저장하는 buffer pool의 효율성을 향상시키는데 목적이 있다. Buffer pool page는 보다 큰 buffer pool memory를 유지하기 위하여 비동기적으로 buffer pool page(4k) 를 disk로 저장한다.

- num_iocleaners에서 개수를 지정할 수 있다.

http://www.starhost.co.kr/xe/index.php?mid=textyle&vid=blog&category=141844&document_srl=183782 

저작자 표시 비영리 변경 금지
신고

'DB > DB2' 카테고리의 다른 글

DB2 check list  (0) 2011.08.10
DB2관련 Processor 들 정리  (0) 2011.08.10
DB2 운영 명령어 모음  (0) 2011.08.10
DB2 기초  (0) 2011.07.15
DB2 SQLSTATE 메시지  (0) 2010.03.16

DB2 운영 명령어 모음

DB/DB2 2011.08.10 11:17

DB2 운영 명령어 모음 - 01

서버 구성 파일             db2 get dbm cfg
인스턴스 이름을 변경하거나, service name, port 등을 변경             winntsystem32driversetcservices 파일수정
인스턴스 레벨의 변수를 수정             db2 update dbm cfg using [파라미터] [값]
DB2 Start             db2start
DB2 Stop             db2stop
                          db2 deactivate db (db2 activate db 로 메모리 상주시)
                          db2 force application all
                          db2stop
DB 연결끊기             db2 terminate
DB2 확인                          시작프로그램>IBM DB2>일반관리도구>제어센터
db 생성              db2  create  db  database명
db 연결              db2  connect to  database명  user userid using password
Tablespace의 정보       db2  list  tablespaces |  more
                                       db2 list tablespace show detail | more
Table의 list                          db2  list  tables  for  all  |  more
Table의 column 정보             db2 “select  tabschema,  tabname,  colname,  typename,
                                       length, scale,  default,  nulls from  syscat.columns “
                                       제어센터 이용
db 목록            db2 list db directory
 
tablespace(ex. GisaTBS)가 부족할 경우           
             #  su  ?  root
             smit에서 datavg1에 Logical Volume 64M 짜리를 하나 만듬
             #  cd  /dev
             #  chown  db2inst1:db2iadm1  gisalv2
             $  su  ?  db2inst1
             $  db2  connect  to  depsdb
             $  db2  “alter  tablespace  GisaTBS
             add  (device  ‘/dev/rgisalv2’  16000)”
TableSpace가 Backup Pending 상태에 빠졌을 경우           
             $  db2 list tablespaces | more
             $  db2 backup database depsdb tablespace GisaTBS ( ex. GisaTBS가 백업 보류 )
TableSpace가 Check Pending 상태에 빠졌을 경우
             [다음은 테이블의 점검보류 상태를 조회하는 것이다.
             SUBSTR은 SYSCAT.TABLES의 CONST_CHECKED 컬럼에 있는 처음 2바이트를 추출하는데 사용된다.
             첫번째 바이트는 외부 키 의무 규정을 나타내고,
             두번째 바이트는 점검 의무 규정을 나타낸다.]
             
             $  db2  “ SELECT  TABNAME,  SUBSTR( CONST_CHECKED, 1, 1 ) AS  FK_CHECKED
                                       ,  SUBSTR( CONST_CHECKED, 2, 1 ) AS  CC_CHECKED   
                            FROM  SYSCAT.TABLES 
                            WHERE STATUS = 'C' “
             그 다음  T1과 T2 테이블을 점검 보류 상태로 설정합니다
             $  db2  SET  CONSTRAINTS  FOR  T1,  T2  OFF
             다음과 같이 수행하여 T1에 대한 제한 조건을 점검하고 첫번째 위반만을 얻습니다.
             $  db2  SET  CONSTRAINTS  FOR  T1  IMMEDIATE  CHECKED
             
             T1 및 T2에 대한 제한 조건을 점검하고, 예외 테이블 E1과 E2로 위반 행을 기입한다.
             $  db2  SET  CONSTRAINTS  FOR  T1,  T2  IMMEDIATE  CHECKED
          FOR EXCEPTION IN T1 USE E1,  IN T2 USE E2
             
             IMMEDIATE CHECKED 옵션으로 T1의 FOREIGN KEY 제한 조건 점검과 T2의 CHECK 제한 조건 점검이 무시되도록 합니다.
             $  db2  SET  CONSTRAINTS  FOR  T1  FOREIGN  KEY, T2  CHECK  IMMEDIATE  UNCHECKED
에러 메세지 발생시             $HOME/sqllib/db2dump 디렉토리내의 db2diag.log 파일을 조사
                                       db2   “ ?   Sql0805 ”             ex. db2  " ?  list "
갑자기 느려졌을 경우- LOCK 상태확인                          db2 get snapshot for locks on depsdb
                            - Index 설정 여부             dynexpln ?d depsdb “select …..” -o explain.out  
손상된 데이터베이스의 강제 삭제
$HOME/instance_name$  rm   -r   SQL0000x  디렉토리 삭제 0000x는 디비 생성 순서, 손상된 디비의 물리적 디렉토리
 
runstats 명령
             db2  runstats on table 테이블명 [WITH DISTRIBUTION
                          [AND [DETAILED] {INDEXES ALL | INDEX 색인명}] |
                          {AND | FOR} [DETAILED] {INDEXES ALL | INDEX 색인명}]
                          [SHRLEVEL {CHANGE | REFERENCE}]
             db2  runstats  on  table  inst.albums  with  distribution and  detailed  indexes all
 
테이블스페이스  및 테이블의 생성 
             $  db2  create  regular  tablespace  dms04 managed by database using
                          (file '/dms/dms04'  1000) extentsize 2;
             $  db2  create  table  test1 (partno  integer,  subpart  integer)  in DMS04
테이블스페이스  및 테이블의 상태
             $  db2  list  tablespaces  
             $  db2  list  tablespaces   show  detail   
             $  db2  list  tablespace  containers  for   tblspace_id   
             $  db2  list  tablespace  containers  for   tblspace_id show   detail  
             $  db2  list   tables  for  all  
             $  db2  "select  tbspace , definer , tbspaceid,  tbspacetype,datatype  
                           from syscat.tablespaces "    
             $  db2  "select  tabname , tbspaceid,  tbspace, index_tbspace ,  long_tbspace
                          from  syscat.tables   where  tabname = 'SYSTABLES' "
             $  du  -k
             
 
테이블스페이스 및 테이블을 삭제                   $  db2  drop  tablespace  test1space
                                                                 $  db2  drop  table  userid.test1
DB Application 관리                           $  db2  list  applications  show  detail
                                                                 $  db2  force  application  ( agent-id ); agent-id는 숫자5자리
Db2batch - SQL 조회에 대한 BMT용 유틸러티       $  db2batch  “SQL 조회문”
Dynexpln  - 동적 SQL에 대하여 db2expln을 수행
             $  dynexpln  [[-d <database>]  [-e <statement terminator>] 
                          [-f <input file>] [-g]  [-i]  [-t|
                          -o  <output file> ]  [-s  <SQL statement>]
                          [-u  <userid>  <password> ] ] [ -h | -?]
             // 옵션
             -e  <statement terminator>  =  SQL 구분자 (default 값은 no terminator)
             -g                         =  show optimizer plan graphs
             -h 또는 -?                  =  도움말
             -i                         =   show operator ID numbers
             -s <SQL statement>          =   보고자 하는 SQL 문
             -t                         =   terminal output desired
             
             제어센터를 실행시킨 후 해당 데이터베이스에서 오른쪽 마우스버튼을 클릭 
 
limt 쿼리                                 select * from staff fetch first 5 rows only
select empno, lastname, yyt 
from ( select empno, lastname, firstnme, 
                          rownumber() over (order by empno) as yyt 
             from employee
      ) as t 
where yyt between 20 and 30
 
ex.         select empno, row_number() over() as n from employee ;
             select empno, row_number() over(order by empno desc) as n from employee ;
             select job, years, row_number() over(partition by job order by years) as n from staff ;
 
autoincrement 쿼리 
CREATE TABLE TESTTB 
             (TEST INTEGER GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1, NO CACHE ) 
             ,NAME VARCHAR (15) 
             ,YEAR INTEGER ) ;
 
A. Sequence 생성 
① db2 connect to sample 
② db2 “create sequence s1 start with 2 increment by 3 maxvalue 20 cycle” 
B. NEXTVAL 
① db2 “values NEXTVAL FOR s1” 
② db2 “insert into myempl values (NEXTVAL FOR s1, ‘JOHN’, 50000) 
C. Sequence 변경 
① db2 “alter sequence s1 minvalue 1” 
D. Sequence 삭제 
① db2 “drop sequence s1 restrict” 
 
auto commit 설정
db2cli.ini 파일에서 설정 또는 odbc connect 에서 설정.
명령센터>자동확약 체크
 
heap 크기 바꾸기 - 바꾸고난후 db2stop ; db2start;
db2 update db cfg for db이름 using APPLHEAPSZ 크기 ; 
db2 update db cfg for db이름 using dbheap 크기
db2 update db cfg for db이름 using catalogcache_sz 크기
 
제어센타에서 칼럼을 변경하거나 삭제, 데이타 삽입
             데이터 삽입은 제어센터의 아이콘들중 명령센터 프로그램을 실행 .
             삭제 버튼은 처음에 테이블을 만들때만 쓰입니다. 즉 만들어진 후엔 기능을 사용할 수 없음.
 
현재날짜 char로 변환
SUBSTR(CHAR(CURRENT DATE,ISO),1,4) CONCAT SUBSTR(CHAR(CURRENT DATE,ISO),6,2) CONCAT SUBSTR(CHAR(CURRENT DATE, ISO),9,2)
 
dual 테이블사용
SELECT CURRENT TIMESTAMP FROM SYSIBM.SYSDUMMY1
 
insert into문
insert into aaa (TDM_ID, FEM_NO, ST_Dimension, ST_Spring_Rate )
select '2010', FEM_NO, ST_Dimension, ST_Spring_Rate from aaa where tdm_id = '1000'
또는 
insert into aaa (TDM_ID, FEM_NO, ST_Dimension, ST_Spring_Rate )
= (select '2010', FEM_NO, ST_Dimension, ST_Spring_Rate from aaa where tdm_id = '1000')
 
CLP바로실행하기
db2cmd -c -i -w db2



<포인트>

비정상적인 쿼리문 종료로 lock이 걸렸을때

1.

db2 get snapshot for locks on alm

이 명령을 이용하여 락이 걸린 넘버를 찾아냄

만약 락 걸린 내용이 좀 많으면

db2 get snapshot for locks on alm > 파일명.txt

이 명령을 이용해서, 파일을 view하면 됨


2.

db2 "force application (넘버)"

이 명령을 이용하여 해당 넘버의 lock을 종료시킴

 출처 - 
http://www.starhost.co.kr
저작자 표시 비영리 변경 금지
신고

'DB > DB2' 카테고리의 다른 글

DB2 check list  (0) 2011.08.10
DB2관련 Processor 들 정리  (0) 2011.08.10
DB2 운영 명령어 모음  (0) 2011.08.10
DB2 기초  (0) 2011.07.15
DB2 SQLSTATE 메시지  (0) 2010.03.16

DB2 기초

DB/DB2 2011.07.15 10:02
소개글| 손헌덕, 비즈허브, renass@bizhub.co.kr

2007년 10월 2일

몇 년 전부터 국내 금융권 IT 시장에서는 금융 시스템의 차세대 프로젝트가 봇물을 이루고 있으며 EDW 프로젝트들이 다시 부상하며 대형 DBMS 시장의 수요가 늘어나고 있습니다.

 

이 여파로 오랫동안 엔터프라이즈 급 플랫폼 분야에서 선두에 있던 메인프레임 플랫폼이 점차 오픈 플랫폼에 자리를 내어주고 있어 DBMS 시장은 오픈 플랫폼을 기반으로 지원하는 DBMS 진영 쪽에서의 시장 확대로 이어지고 있습니다.

 

이러한 시장 변화 시기에 좀 더 효과적으로 대처할 수 있는 방법이 없을까요? 메인프레임의 데이터베이스인 DB2/zOS와 호환되면서 오픈 플랫폼기반에서 강력한 성능을 뒷받침해주는 DBMS가 있다면 어떨까요? 혹은 메인프레임의 DB2만큼이나 안정성을 보장하면서 타사의 오픈 플랫폼 기반의 DBMS 만큼 다양한 기능을 지닌 DBMS가 있으면 어떨까요?

 

필자는 이러한 요구조건을 부합할만한 기능을 가진 DBMS로 IBM DB2 UDB LUW를 소개하려고 합니다.

 

이 제품은 1993년에 오픈 플랫폼인 리눅스, 유닉스 및 윈도우 플랫폼을 지원하는 버전 1을 출시한 후로 새로운 버전을 거듭하며 많은 진보된 기능을 추가해 왔다. 현재 버전 9까지 버전업 되어 안정성이 입증되어 있으며 진보된 컨셉의 다양하고 강력한 기능으로 최근 시장에서 많은 관심을 받고 있는 제품입니다.

 

몇 년 전 우연히 이 제품을 처음 접하였을 때 이 제품이 보여줬던 날렵함과 뛰어난 성능에 대한 기억은 “이렇게나 가벼운 설치 코드와 간단한 설치 과정을 통해 설치된 제품이 어떻게 이런 뛰어난 성능을 낼 수 있는가” 였다. 낯선 곳에서 우연히 눈에 띄는 사람을 처음 만났을 때처럼 강렬한 첫인상으로 남아있습니다.

 

“무슨 설치가 윈도우보다 쉽지? 이거 뭔가 잘못 설치한 거 아닌가?” 하는 불안함이 무색할 정도로 가벼우면서 안정적인 엔진과 간결한 명령구조에서 나오는 강력한 성능은 알면 알수록 새삼 “왜 이렇게 좋은 제품을 그 동안 미처 경험해보지 못했을까?” 하는 생각을 자아내게 하며, 새로운 버전이 출시될수록 더욱 좋은 기능으로 만족감을 느끼게 해줍니다.

 

여러분도 아래의 기사들을 통해 기초를 쌓아가면서 DB2 UDB LUW에 대한 다양한 매력을 느낄 수 있는 좋은 기회가 되길 바랍니다.

저작자 표시 비영리 변경 금지
신고

'DB > DB2' 카테고리의 다른 글

DB2 check list  (0) 2011.08.10
DB2관련 Processor 들 정리  (0) 2011.08.10
DB2 운영 명령어 모음  (0) 2011.08.10
DB2 기초  (0) 2011.07.15
DB2 SQLSTATE 메시지  (0) 2010.03.16

Android Permission 종류

Program/Android 2011.04.04 18:16
Permission 종류
ACCESS_CHECKIN_PROPERTIES     체크인데이터베이스의_속성테이블로_액세스                        
ACCESS_COARSE_LOCATION         코스_로케이션_액세스_(Cell-ID/WiFi)                             
ACCESS_FINE_LOCATION           파인로케이션_액세스(GPS)                                        
ACCESS_LOCATION_EXTRA_COMMANDS 로케이션_옵션_커맨드_액세스                                     
ACCESS_MOCK_LOCATION           목_로케이션_프로바이더_생성_(테스트용)                          
ACCESS_NETWORK_STATE           네트워크_상태_접근                                              
ACCESS_SURFACE_FLINGER         서피스_플링거_접근                                              
ACCESS_WIFI_STATE             WiFi상태_접근                                                   
ADD_SYSTEM_SERVICE             시스템서비스_추가                                               
BATTERY_STATS                 배터리_상태                                                     
BLUETOOTH                     블루투스                                                        
BLUETOOTH_ADMIN               블루투스_어드민                                                 
BRICK                         디바이스_실효성_지정                                            
BROADCAST_PACKAGE_REMOVED     제거된_패키지에_대한_notification_브로드캐스트                  
BROADCAST_SMS                 SMS에_대한_브로드캐스트                                         
BROADCAST_STICKY               인텐트_브로드캐스트                                             
CALL_PHONE                     통화                                                            
CALL_PRIVILEGED               통화(긴급전화_포함)                                             
CAMERA                         카메라                                                          
CHANGE_COMPONENT_ENABLED_STATE 컴포넌트의_실효성_변경                                          
CHANGE_CONFIGURATION           컨피그_변경                                                     
CHANGE_NETWORK_STATE           통신상태_변경                                                   
CHANGE_WIFI_STATE             WiFi상태_변경                                                   
CLEAR_APP_CACHE               어플리케이션_캐시_클리어                                        
CLEAR_APP_USER_DATA           어플리케이션의_유저데이터_클리어                                
CONTROL_LOCATION_UPDATES       위치정보_갱신                                                   
DELETE_CACHE_FILES             캐시파일_제거                                                   
DELETE_PACKAGES               패키지_제거                                                     
DEVICE_POWER                   전원상태에_대한_로우레벨_접근                                   
DIAGNOSTIC                     진단리소스_읽고쓰기                                             
DISABLE_KEYGUARD               키_가드_끄기_DUMP_덤?                                          
EXPAND_STATUS_BAR             상태표시줄_확장                                                 
FACTORY_TEST                   팩토리_테스트                                                   
FLASHLIGHT                     플래시라이트                                                    
FORCE_BACK                     포스백                                                          
GET_ACCOUNTS                   어카운트_획득                                                   
GET_PACKAGE_SIZE               패키지_획득                                                     
GET_TASKS                     태스크_획득                                                     
HARDWARE_TEST                 하드웨어테스트                                                  
INJECT_EVENTS                 유저이벤트_키/트랙볼                                            
INSTALL_PACKAGES               패키지_인스톨                                                   
INTERNAL_SYSTEM_WINDOW         내부_시스템윈도_활용                                            
INTERNET                       인터넷                                                          
MANAGE_APP_TOKENS             어플리케이션_토큰관리                                           
MASTER_CLEAR                   마스터_클리어                                                   
MODIFY_AUDIO_SETTINGS         오디오설정_편집                                                 
MODIFY_PHONE_STATE             전화상태_편집                                                   
MOUNT_UNMOUNT_FILESYSTEMS     파일시스템_편집                                                 
PERSISTENT_ACTIVITY           액티비티_지속                                                   
PROCESS_OUTGOING_CALLS         전화_발신처리_접근                                              
READ_CALENDAR                 캘린더_읽어오기                                                 
READ_CONTACTS                 주소록_읽어오기                                                 
READ_FRAME_BUFFER             프레임버퍼_읽어오기                                             
READ_INPUT_STATE               입력상태_읽어오기                                               
READ_LOGS                     로그_읽어오기                                                   
READ_OWNER_DATA               owner_data읽어오기                                              
READ_PHONE_STATE               통화상태_읽어오기_READ_SMS_SMS읽어오기                          
READ_SYNC_SETTINGS             동기설정_읽어오기                                               
READ_SYNC_STATS               동기상태_읽어오기                                               
REBOOT                         reboot                                                          
RECEIVE_BOOT_COMPLETED         boot완료                                                        
RECEIVE_MMS                   MMS수신                                                         
RECEIVE_SMS                   SMS수신                                                         
RECEIVE_WAP_PUSH               WAP수신                                                         
RECORD_AUDIO                   오디오_수신                                                     
REORDER_TASKS                 태스크_Z오더                                                    
RESTART_PACKAGES               패키지_리스타트                                                 
SEND_SMS                       SMS송신                                                         
SET_ACTIVITY_WATCHER           액티비티_왓쳐지정                                               
SET_ALWAYS_FINISH             액티비티_전체_종료                                              
SET_ANIMATION_SCALE           스케일_애니메이션_지정                                          
SET_DEBUG_APP                 디버그어플리케이션_지정                                         
SET_ORIENTATION               스크린_로테이션지정                                             
SET_PREFERRED_APPLICATIONS     자주_사용하는_어플리케이션_지정                                 
SET_PROCESS_FOREGROUND         포어그라운드_처리지정                                           
SET_PROCESS_LIMIT             제한처리_지정                                                   
SET_TIME_ZONE                 타임존_지정                                                     
SET_WALLPAPER                 배경화면_지정                                                   
SET_WALLPAPER_HINTS           배경화면_힌트_지정                                              
SIGNAL_PERSISTENT_PROCESSES   지속처리_시그널_지정                                            
STATUS_BAR                     상태표시줄_지정                                                 
SUBSCRIBED_FEEDS_READ         서브스트립드_피즈_읽어오기                                      
SUBSCRIBED_FEEDS_WRITE         서브스트립드_피즈_쓰기                                          
SYSTEM_ALERT_WINDOW           알림_윈도우                                                     
VIBRATE                       진동                                                            
WAKE_LOCK                     알람                                                            
WRITE_APN_SETTINGS             APN설정_쓰기                                                    
WRITE_CALENDAR                 캘린더_쓰기                                                     
WRITE_CONTACTS                 주소록_쓰기                                                     
WRITE_GSERVICES               G서비스_쓰기                                                    
WRITE_OWNER_DATA               owner_data쓰기                                                  
WRITE_SETTINGS                 설정_쓰기                                                       
WRITE_SMS                     SMS쓰기                                                         
WRITE_SYNC_SETTINGS           동기설정_쓰기       


<uses-permission android:name="android.permission.xxxxxx"/> 
저작자 표시 비영리 변경 금지
신고

안드로이드 개발 참고 사이트 모음입니다.

Program/Android 2011.03.16 10:04
* 안드로이드펍의 회색님이 올려주신 사이트 입니다. 

안드로이드 개발 참고 사이트 모음입니다. 

AndroidPub : 안드로이드펍 한국 안드로이드 사용자 및 개발자 커뮤니티. 
  소개       : 한국 안드로이드 커뮤니티
  홈페이지 : http://www.androidpub.com

공식 안드로이드 공식 홈페이지들
  소개글        : 안드로이드의 전체 소스를 다운받을 수 있음
  홈페이지     : 소스 http://source.android.com
                     공식 http://www.android.com
                     마켓 http://market.android.com
                     개발자 http://developer.android.com

- 안드로이드 써드파티 마켓 사이트 모음
  소개글        : 안드로이드의 다양한 써드파티 마켓 정보 모음
  홈페이지     : http://www.androidpub.com/22520


Android Code Snippets
  소개       : 간단한 안드로이드 코드 모음
  홈페이지 : http://www.androidsnippets.org

StackOverflow Android 
  소개       : 안드로이드 질문과 답 (영문)

구글의 안드로이드 개발자들이 만든 애플리케이션 모음 (Apps for Android )
  소개        : 주로 구글의 실제 안드로이드 개발자들이 만든 샘플 애플리케이션들로 안드로이드의 구조를 잘 이해하고
                  작성한 애플리케이션들이라서 주옥같은 예제가 많이 들어있음. PhotoStream는 웹서버와의 통신에서
                  참고하기 좋은 애플리케이션.

안드로이드 플랫폼 스터디 모임
  소개       : 안드로이드 애플리케이션 프로그래밍을 공부하는 것이 아니라, 안드로이드 플랫폼의 자체 이해를 목적으로 합 
                       니다. 이를 통해 안드로이드 프레임워크의 설계 및 동작 원리를 이해하고, 나아가 안드로이드의 내부 구조를 파악 
                      함으로써 효율적인 안드로이드 프로그램의 설계 및 구현 할 수 있는 지식을 쌓는 것이 저희 스터디의 목표입니다.  
  홈페이지 : http://andstudy.springnote.com/

Eyes Free TTS 텍스트 음성 변환 라이브러리
  소개       : 안드로이드 애플리케이션에서 공유해서 사용할 수 있는 TTS 라이브러리 (안드로이드 1.6에 기본 탑재될 것으로 
                 알려짐)

-  SMALI Dex assembler/disassembler
  소개       : JF 가 작업중인 Dex 어셈블러/디스어셈블러

The open mob for android
  소개       : 안드로이드 개발 관련 위키
  홈페이지 : http://wiki.andmob.org/

안드로이드 스크립트 환경 (ASE : Android Scripting Environment)
  소개       : http://www.androidpub.com/11518

Live CD for Android
  소개       : PC에서 안드로이드를 구동시키자? x86 으로 컴파일된 안드로이드 이미지를 CD에 구워서 PC에서 구동.

HTC 안드로이드 개발자 폰 지원 사이트. 
  소개       : 최신 시스템 이미지등을 다운받을 수 있음

MotoDev 모토로라 개발자 사이트
  소개       : 모토로라의 개발자 사이트 최근 안드로이드를 중심으로 구성되고 있음. PodCast등 쓸만한 정보가 제법 올라옴
  홈페이지 : http://developer.motorola.com/

차이나모바일 OMS 개발자 사이트
  소개       : 차이나 모바일 OMS SDK 정체를 드러내다. 
  홈페이지  : http://www.ophonesdn.com 

일본 안드로이드회 기술자료
  소개         : 일본의 안드로이드 개발자 협회의 기술자료 다양한 자료가 잘 정리되어있다.

본 글은 퍼가셔도 좋으나 안드로이드펍 출처를 정확히 명기해주시기 바랍니다. :) 종종 업데이트 하도록 하겠습니다. 쓸만한 링크가 있으면 댓글로 알려주세요 추가시켜놓도록 하겠습니다.

출처: 안드로이트펍

http://www.androidpub.com/android_dev_info/89895 
저작자 표시 비영리 변경 금지
신고

[안드로이드 무료 게임 추천] 점프점프 Jump Jump - android Game

Program/Android 2011.02.24 14:09
안드로이드 게임 무료 다운 추천

무료 다운

점프점프 (무료 버전 포함)
 <-- 다운다운

android game jumpjump


국내 T스토어와 KT올레 마켓에 있는 국내 게임인 "점프점프" 입니다.

무료 버전도 배포 하고 있습니다.  첨부파일 다운 받아서 바로 설치 하셔도 됩니다.



티스토어 추천 1위에 올랐네요..






T스토어 점프점프 무료 받기..



T스토어 점프점프 유료 받기..



KT 올레마켓 유료 받기

KT는 현재 무료 버전이 없기 때문에 그냥 점프파일 apk 다운 받으셔서 설치 하셔도 됩니다.  (무료버전)



<-- 다운다운
저작자 표시 비영리 변경 금지
신고

(안드로이드 게임 점프점프 다운)JumpJump [Android Game] 추천

Program/Android 2011.02.24 11:07
안드로이드 게임 무료 다운 추천

무료 다운

점프점프 (무료 버전 포함)

android game jumpjump


국내 T스토어와 KT올레 마켓에 있는 국내 게임인 "점프점프" 입니다.

무료 버전도 배포 하고 있습니다.  첨부파일 다운 받아서 바로 설치 하셔도 됩니다.






T스토어 점프점프 무료 받기..






T스토어 점프점프 유료 받기..



KT 올레마켓 유료 받기

KT는 현재 무료 버전이 없기 때문에 그냥 점프파일 apk 다운 받으셔서 설치 하셔도 됩니다.  (무료버전)



저작자 표시 비영리 변경 금지
신고

memory leak 회피하기

Program/Android 2010.11.12 11:55
안드로이드펍에서 이재영 님의 글을 복사 해 왔습니다.

문제 되면 삭제 하겠습니다.

http://www.androidpub.com/?mid=android_dev_info&page=3&document_srl=818409

안드로이드 어플을 개발할 때 허용되는 힙 사이즈는 디바이스마다 다르긴 하지만 대략 15메가 내외로 제한적입니다.
이 상황에서 카메라 어플이나 포토에딧 어플과 같은
큰 이미지를 제어한다던지, 겔러리나 리스트 뷰에서 다량의 이미지를 제어하는 경우,
거의 대부분 out of memory 문제를 접하게 됩니다.

이런 경우에 대해서 잘 정리된 사이트가 있어서 먼저 소개 합니다.
http://cking4w.tistory.com/455 
http://www.ibm.com/developerworks/kr/library/j-jtp11225/ 

대부분의 메모리 문제의 경우, Bitmap recycle 과 Drawable callback 을 null 로 맞추어서 해결할 수 있습니다만,
겔러리나 리스트뷰의 경우 ListAdapter 에서 생성하는 View 를 제대로 unbind 를 해주지 않는다면 메모리 문제가 발생할 수 있습니다.

특히 BitmapDrawable 과 NinePatchDrawable 을 명확하게 구분해서 사용해야 하는데,
메모리를 많이 사용하는 어플의 경우 힙 사이즈 제한으로 인해 bitmap 을 개발자가 create / recycle 하면서 메모리를 관리하게 되는데,
NinePatchDrawable 을 사용한 경우 해당 bitmap 을 개발자가 recycle 할 수 있는 방법이 없기 때문에
bitmap create / recycle 이 필요한 경우 BitmapDrawable 을 사용해야 하는 경우가 있습니다.

또한 ListAdapter 의 경우, 항상 view 를 새로 생성하는 방식은 피해야 하며,
일반적으로 convertView 를 사용하지만, 때에 따라서 개발자가 직접 view instance 를 관리하는게
메모리 관리에 있어서는 더 명확해 보일 수도 있습니다.

또한 activity 의 onPause 에서 메모리를 해제할 것들과 onDestroy 에서 메모리를 해제할 것들을 구분해야 하며,
activity 를 start 할 때 flag 를 어떻게 줄 것인지도 같이 고민을 해야
background 에 있는 activity 의 메모리로 인해, 현재 activity 에서 out of memory 가 발생하는 문제도 해결 할 수 있을 것입니다.

감사합니다.
http://floo.co.kr


저작자 표시 비영리 변경 금지
신고

JAVA - Android Audio record and playback is corrupt

Program/Android 2010.11.11 16:28

음성 받아 드려서 어느 정도의 소리 이상일 경우 이벤트를 발생 하려고 구글링 해서 본 소스 입니다.



I am trying to record a pcm sound file and play it back. When I play it back, it sounds slow and takes longer than it did to record. I'm not sure if the error is in the record or play code. Any ideas what the problem is?

I largely copied code from this example: http://emeadev.blogspot.com/2009/09/raw-audio-manipulation-in-android.html

Here is the record code (isRecording flag is set by stop button in gui thread).

 android.os.Process.setThreadPriority(android.os.Process.THREAD_PRIORITY_URGENT_AUDIO); 
       
int sampleRateInHz = 8000;//8000 44100, 22050 and 11025 
       
int channelConfig = AudioFormat.CHANNEL_CONFIGURATION_MONO; 
       
int audioFormat = AudioFormat.ENCODING_PCM_16BIT; 
 
       
File sd = Environment.getExternalStorageDirectory(); 
       
File file = new  File(sd, "msg.wav"); 
 
       
if (file.exists()) 
            file
.delete(); 
 
       
try { 
            file
.createNewFile(); 
       
} catch (IOException e) { 
           
Log.e("create file:", e.toString()); 
       
} 
 
       
try { 
 
           
OutputStream os = new FileOutputStream(file); 
           
BufferedOutputStream bos = new BufferedOutputStream(os); 
           
DataOutputStream dos = new DataOutputStream(bos); 
 
           
int bufferSize = AudioRecord.getMinBufferSize(sampleRateInHz,channelConfig, audioFormat); 
           
short[] buffer = new short[bufferSize]; 
            audioRecord
= new AudioRecord(MediaRecorder.AudioSource.MIC,  
                    sampleRateInHz
,channelConfig, audioFormat,bufferSize); 
 
            audioRecord
.startRecording(); 
 
            isRecording
= true; 
           
while (isRecording) { 
               
int bufferReadResult = audioRecord.read(buffer, 0, bufferSize); 
               
for (int i = 0; i < bufferReadResult; i++)  
               
{ 
                    dos
.writeShort(buffer[i]); 
               
} 
           
} 
            dos
.close(); 

This is the play code.

  File file = new File(SendAlert.voiceFile); 
         
// Get the length of the audio stored in the file (16 bit so 2 bytes per short) 
         
// and create a short array to store the recorded audio. 
         
int musicLength = (int)(file.length()/2); 
         
short[] music = new short[musicLength]; 
 
 
         
try { 
           
// Create a DataInputStream to read the audio data back from the saved file. 
           
InputStream is = new FileInputStream(file); 
           
BufferedInputStream bis = new BufferedInputStream(is); 
           
DataInputStream dis = new DataInputStream(bis); 
 
           
// Read the file into the music array. 
           
int i = 0; 
           
while (dis.available() > 0) { 
              music
[i] = dis.readShort(); 
              i
++; 
           
} 
 
 
           
// Close the input streams. 
            dis
.close();      
 
 
           
// Create a new AudioTrack object using the same parameters as the AudioRecord 
           
// object used to create the file. 
           
AudioTrack audioTrack = new AudioTrack(AudioManager.STREAM_MUSIC,  
                                                   
8000,  
                                                   
AudioFormat.CHANNEL_CONFIGURATION_MONO, 
                                                   
AudioFormat.ENCODING_PCM_16BIT,  
                                                   musicLength
,  
                                                   
AudioTrack.MODE_STREAM); 
           
// Start playback 
            audioTrack
.play(); 
 
           
// Write the music buffer to the AudioTrack object 
            audioTrack
.write(music, 0, musicLength); 


buffer[i] 를 log 찍어 보시면 소리 db 따라 값이 출력 됩니다.


출처 - http://efreedom.com/Question/1-3604419/Android-Audio-Record-Playback-Corrupt

저작자 표시 비영리 변경 금지
신고

안드로이드 얼굴 인식

Program/Android 2010.10.08 11:16
FaceDetector.Face[] faces = new FaceDetector.Face[10];     // 최대 인식할 얼굴수 설정
02.FaceDetector detector = new FaceDetector(bitmap.getWidth(), bitmap.getHeight(), faces.length);
03.int numFaces = detector.findFaces(bitmap, faces);     // 얼굴 인식 실행
04.for(FaceDetector.Face face : faces) {
05.PointF midPoint = new PointF();
06.face.getMidPoint(midPoint);            //눈과 눈사의 가운데 지점
07.float eyesDistance = face.eyesDistance();    //눈과 눈사이의 거리
08.//처리.
09.}
android 에 faceDetector


sample
http://d.hatena.ne.jp/bols-blue/20090818/1250562668
http://blog.livedoor.jp/deeds_not_words/archives/624855.html
http://www.anddev.org/quick_and_easy_facedetector_demo-t3856.html
저작자 표시 비영리 변경 금지
신고

런지/스쿼트/크런치 (허벅지/엉덩이/복부 군살빼기 )

다이어트 2010.10.02 22:13
런지/스쿼트/크런치 (허벅지/엉덩이/복부 군살빼기 )


http://blog.naver.com/rokae96?Redirect=Log&logNo=50031712848
저작자 표시 비영리 변경 금지
신고

하체 비만 운동 스쿼트, 런지,

다이어트 2010.10.02 22:10

 

스쿼트

 

스쿼트는 많은 근육과 관절을 이용하는 운동으로 다이어트의 가장 기본 동작이다. 지방은 감소시키고 근육은 증가시켜 허벅지뿐 아니라 다른 부위에도 효과적이다.


① 어깨너비보다 조금 넓게 다리를 벌리고 선다. 이때 발끝이 약간 바깥쪽으로 가도록 한다. 두 팔은 포개어 직각으로 들어 중심을 잡는다.

② 무릎을 거의 직각으로 구부린다. 상체는 쭉 편 상태로, 무릎은 옆에서 봤을 때 발보다 안쪽에 오도록 한다. 14~16회 정도 쉬지 않고 해준다.

 

 

 

다리 들어올리기

 

허벅지를 비롯해 다리 전체 근육을 정리해주는 역할. 스스로 강도를 조절할 수 있는 동작으로 TV 보면서, 혹은 휴식 취하면서 하기 좋다.


①앉은 상태에서 두 다리를 붙인 후 쭉 펴준다. 손끝이 바깥쪽으로 향하도록 해 손바닥을 상체 뒤에 놓는다. 상체는 손 쪽으로 약간 기울이되 펴주도록 한다.
②한쪽 다리를 45°가 되도록 올렸다 내린다. 이때 다리 전체가 땅기는 느낌이 있어야 한다. 16회 정도 반복한 후 반대쪽 다리를 같은 방법으로 실행한다. 

 

 

 

런지

 

허벅지부터 힙까지 연결되는 선을 아름답게 해주는 동작. 동작을 제대로 했다면 시작하고 약 5일 동안 땅기는 느낌이 들며, 꾸준히 해주면 그 느낌이 없어진다.

 

①오른쪽 다리를 앞으로, 왼쪽 다리를 뒤로 벌린다. 이때 오른쪽 발의 발끝은 약간 바깥쪽으로 향하고, 왼쪽 발은 앞꿈치로만 서도록 한다.
② 숨을 크게 들이 쉬면서 허벅지와 바닥이 수평 되도록 앉는다. 이때 상체는 곧게 편 상태로 유지한다. 왼쪽 무릎은 바닥에 거의 닿을락말락 할 정도. 숨을 멈춘 상태에서 5~10초 가량 버틴 후 제자리로 돌아온다. 12회 정도 반복한 후 반대쪽 다리를 같은 방법으로 실행한다.

 

 

 

[집중강화 동작]

 

 

 

허벅지 바깥쪽에 효과적인 ‘똑딱이 스쿼트’

 

다른 동작에 비해 빠르게 움직이면서 근육을 자극하는 동작이다. 처음에 중심을 잡기가 쉽지 않으면 의자를 활용해도 좋다.


①상체는 곧게 펴고 두 손은 허리를 짚는다. 다리는 어깨너비보다 약간 넓게 벌린 후 무릎을 구부린다.
②왼쪽 무릎은 펴면서 오른쪽 다리는 45°로 벌려준다. ①자세로 온 뒤 반동을 이용해 반대편 다리를 같은 방법으로 해준다. 좌우 번갈아 가며 하며 15회 정도 쉬지 않고 해준다.

 

 

☞ NG 자세
마음이 앞서 다리에 조금 더 자극을 주겠다는 생각으로 다리를 바깥으로 치듯이 올려주거나 과도한 각도로 올리는 것은 NG. 45° 정도 올려주는 것이 포인트다.

 

 

 

허벅지 뒤쪽 살을 없애주는 ‘덤벨 레그컬’

 

허벅지 뒤쪽에 쌓인 지방을 없애고 근육을 만드는데 효과적인 동작이다. 힙을 업시키는 효과가 있기에 여름철 미니스커트, 미니팬츠가 입고 싶다면 필수로 해줘야 한다.


① 바닥에 엎드려 양 발 사이에 3~4㎏ 정도의 덤벨을 끼운다. 고개는 약간 들고, 손바닥은 바닥에 닿도록 다리 옆에 놓는다. 
② 천천히 양 발을 올려준다. 뒤꿈치가 엉덩이에 닿을락말락 하는 정도까지 올려준 후 ①로 돌아온다. 이때 발은 땅에 닿지 않도록 하는 것이 포인트. 12~15회 정도 쉬지 않고 해준다.

 

☞ NG 자세
발을 올렸다가 내렸을 때 발이나 덤벨이 바닥에 닿으면 NG. 반동을 이용하지 말고 허벅지 뒤쪽 힘을 유지해줘야 한다.

 

 

 

 

허벅지 안쪽과 라인을 잡아주는 ‘피규어 사이드런지’

 

다리를 넓게 벌린 상태에서 허벅지 근육이 자극하는 각도로 움직여주는 동작. 허벅지 안쪽과 바깥쪽, 전체 라인을 예쁘게 잡아준다.


①양발을 어깨너비보다 2배 이상 넓게 벌리고 선다. 양손은 어깨 높이로 쭉 뻗어서 포개고 상체를 곧게 편다. 
②발은 고정한 상태에서 오른쪽 무릎을 직각으로 구부린다. 동시에 왼쪽 다리는 쭉 뻗어준다. 상체는 움직임이 없어야 한다. 다시 ①로 온 다음 반대쪽 다리도 같은 방법으로 실행한다. 좌우 한번씩, 16회 정도 해준다.

 

 

 

☞ NG 자세
과도하게 무릎을 구부려 구부린 무릎이 발끝보다 넘어가게 되면 NG. 처음엔 무릎이 직각이 되었는지, 발끝보다 넘어갔는지 등을 체크하도록 한다.

 

 


 

허벅지 뒤쪽부터 허리라인까지 잡아주는 ‘스티프 데드리프트’

 

상체는 가만 두고 다리만 움직이는 지금까지의 동작들과는 반대의 동작이다. 상체를 구부려 허벅지 뒤쪽부터 힙, 허리까지 근육을 자극시켜줘 전체적으로 라인이 잡히도록 도와준다.


①양손에 각 2㎏의 덤벨을 쥐고 손등을 바깥으로 향하게 한다. 양 발을 붙이고 상체를 곧게 편다.
②상체를 곧게 편 상태에서 손을 발 쪽으로 천천히 내려준다. 상체가 직각이 될 때까지 내리고, 시선은 정면에 둔다. 이때 다리는 구부리지 않고 쭉 펴도록 해 뒤의 땅김이 느껴져야 한다. 16회 정도 반복. 

 

 

 

 

☞ NG 자세
등을 구부리거나 상체를 앞으로 숙여 팔만 과도하게 밑으로 내리려고 하는 자세는 NG. 상체를 곧게 편 상태에서 직각이 되어야 한다.

 

 

 

허벅지 유형별 살 빼는 방법

 

근육형 비만_ 중량감이 있는 기기로 운동하는 웨이트는 피한다. 대신 스트레칭이나 요가 동작을 수시로 해줘 근육을 릴렉스하게 풀어주는 것이 우선이다.

지방형 비만_ 빠르게 걷기, 수영, 에어로빅 등 적절한 유산소 운동과 웨이트 운동을 병행해준다. 웨이트 운동을 할 때에도 덤벨을 이용하는 등 근육을 자극할 수 있는 동작을 자주 해주는 게 좋다.

셀룰라이트형 비만_ 노폐물이 단단하게 굳어졌기 때문에 무조건 유산소운동을 한다고 살이 빠지지 않는다. 마사지로 혈액순환을 원활하게 한 뒤, 물과 신선한 야채나 과일을 많이 먹어 노폐물을 배출시켜야 한다.

붓기형 비만_ 셀룰라이트형 비만과 같이 오는 경우가 대부분이다. 보통 혈액순환이 잘되지 않아 생기는 경우이므로 혈액순환을 원활하게 하기 위해 뜨거운 물로 찜질해주고 적절한 유산소 운동을 해야 한다. 여기에 다리를 움직여주는 운동을 병행해줘야 한다.

 

샤워 후 해주면 좋은 허벅지 자극 마사지

 

1. 마사지 로션을 충분히 떨어뜨린 후 손을 나선형으로 돌리면서 전체적으로 바른다. 이때 손가락 끝에 힘을 주고 허벅지 안쪽까지 나선형 마사지를 꼼꼼하게 한다. 
2. 양손으로 허벅지를 잡고 빨래를 짜듯이 비튼다. 손을 땔 때는 튕기듯이 살을 밀어 준다.

허벅지 안쪽과 뒤편 빼놓지 않고 손 전체를 이용해 마사지한다. 
3. 무릎을 구부린 상태에서 손바닥으로 무릎을 감싼 후 엄지 손가락이 닿는 부분을 눌러 준다. 이 부분은 비장과 관련돼 있어 식욕조절 역할을 하고, 허벅지의 혈액 순환을 좋게 해 허벅지 다이어트 효과가 있다.
4. 엉덩이 선의 정 중앙 지점을 손가락으로 강하게 누른다. 이 부분은 허벅지의 혈액 순환을 좋게 해 허벅지 살을 빠지게 하고 처진 엉덩이를 올려주는 효과까지 있다.

저작자 표시 비영리 변경 금지
신고

하체 비만 분류, 관리

다이어트 2010.10.02 22:09
부종형 하체는 줄넘기등 근력운동 하지 말아야
  • [세계닷컴]올해 여름은 긴 바지 대신 짧은 핫팬츠를 입고 싶었던 이정민(23세,여)씨는 하체 다이어트를 위해 운동을 열심히 했다. 심지어 버스정류장 두정거장은 운동을 위해 걸어 다녔지만, 하체 살들은 야속하게도 빠지지 않았다.

    미소진한의원 정윤섭 원장은 “하체비만환자들의 유형과 특징을 분석해 봤을때 하체비만인 환자들은 그 모양과 구성성분 원인등에 따라 크게 세가지로 구별할 수 있으며 각각의 환자들의 음식습관과 직업 운동법등에서 공통점을 찾을 수 있었다.”며 “자신이 어떤 하체비만에 속하는지 알고 그에 맞게 운동을 해야 하체비만에서 탈출 할 수 있다.”고 설명했다.

    현대 여성들의 하체비만을 보면 단순히 지방이 아닌 부종형 하체, 지방형 하체 및 근육형 하체로 나눠 볼 수 있다. 하체비만이라고 생각되면 자신이 어떤 유형에 속하는지 알아보고, 그게 맞는 운동이나 관리를 받는 게 효과적이다. 

    세가지 유형에 대한 운동법을 미소진한의원 정윤섭 원장의 도움말로 알아본다.

    1. 부종형 하체 

    저녁이 될 수록 다리가 부으면서 단단해지는 경우로가장 일반적인 하체비만의 유형이다. 아침 저녁으로 신발을 신을 때 사이즈가 다르게 느껴진다면 부종형 하체비만이라고 할 수 있다. 신진대사가 원활하게 이루어지지 않아서 오래 앉아 있거나 서 있는 사람, 짠 음식을 많이 먹거나 좋아하는 사람에 나타난다. 발목이 굵고 무릎 부위에 살이 많은 경우도 마찬가지다.

    허벅지부터 종아리까지 굵으며 엉덩이 보다는 허벅지 무릎선 위가 굵은 편이고 종아리가 원통형으로 전체적으로 굵고 누르면 물렁한 유형이다. 정원장은 “부종을 없애기 위해서 혈액순환 개선에 신경써야 한다.”며 “퇴근 후 다리를 충분히 풀어주고 족욕이나 반신욕도 뿐 아니라 요가나 스트레칭은 혈액순환과 부종에 좋고 경락맛사지로 좋은 효과를 볼 수 있기 때문에 운동은 유산소 운동과 스트레칭 근력운동을 골고루 하되 운동 후에는 반드시 다리를 풀어줘야 한다.”고 강조했다.

    음식은 부종을 없애고 소변이 잘 배출되는 음식이 좋으며, 부기를 빼고 신진대사를 원활하게 해주는 것에 주력하고, 하체에 무게가 실리면서 다리가 더욱 단단해지고 굵어질 수 있는 운동은 피하는 게 좋다.

    2. 지방형 하체

    부종형 다리가 살이 된 상태로 부기와 셀룰라이트가 결합해 살이 된 하체비만 된 경우로 셀룰로이트로 인해 허벅지 뒷 부분에 피부가 오렌지껍질처럼 울퉁불퉁하게 보이기도 한다.

    배꼽아래 하복부와 엉덩이가 넓고 허벅지까지 굵으며 종아리는 상대적으로 작고 체지방 분석을해보면 지방이 많고 근육은 부족한 유형으로, 운동을 싫어하고 앉아서 하는 일을 하면서 점점 엉덩이가 넓어지게 된다.

    달고 기름진 음식을 좋아하는 경우가 많다. 지방형 하체는 전체적으로 살을 빼야 하므로 특정부위(하체)만 살을 빼기가 어렵기 때문에 몸전체가 살이 빠지면서 하체의 라인도 잡아줘야 하며, 오랫동안 유산소 운동과 식단조절이 필요한 경우로 단기간에 끝내는 운동은 피해야 한다.

    정 원장은 “ 유산소운동을 매일 40분 정도 하면서 전체적으로 다리에 혈액순환이 잘 되도록 해야하는데, 이때 하체운동을 많이 하거나 근력운동을 하면 다리가 빠지는 듯 하다가 도로 굵어질 수 있기 때문에 운동을 많이 하는 것보다는 전체적인 순환에 기준을 맞추는 것이 좋다.”고 말했다.

    3. 근육형 하체

    하체비만 중에서도 가장 다이어트가 어려운 경우로 운동선수에게서 볼 수 있는 유형이다.  부종형, 지방형을 거쳐 셀룰라이트가 단단해진 경우로 종아리에 알통이 생기는 것도 이 경우에 해당한다. 유전적인 내력과 많은 운동을 통해 생긴 것일 수 있다. 

    허벅지와 종아리에 굵고 단단한 근육선이 보인다. 허벅지는 양측면이 굵고 옆에서 보면 허벅지 가운데가 불룩하다. 종아리는 중간부분이 굵고 단단하다.

    정원장은 “근육형 하체비만 유형들은 걷기를 좋아하고 지속적으로 운동을 통해 몸매관리를 한 경우가 많다. 하체운동이 과다해서 근육이 발달된 것이다.” 며 “현재 하고 있는 운동을 모두 중단하고 체지방측정을 통해 현재 근육량의 정도를 점검한다. 보통 헬스장에서는 근육이 과다한 것을 권장하지만 근육이 과다하면 외견상 다리가 튼실해 보여서 예쁘지 않은 다리가 된다.”고 말했다.

    이 경우에는 뭉친 근육을 풀어주고 부기를 방지할 수 있는 다각적인 관리가 필요하다. 무작정 운동을 시작하는 것보다 전문가의 의견과 진단을 통해 체계적인 관리가 시작되어야 한다. 굵은 종아리는 물렁해지도록 자주 주물러서 풀어주고 근육이 작아지도록 해야한다.

저작자 표시 비영리 변경 금지
신고

안드로이드 단말(기기) 모델(기종) 정보 뽑아 오기

Program/Android 2010.08.27 11:20
안드로이드 폰의 기기 모델별 정보 뽑아 오기


private void DeviceInfo(){
Log.e("BOARD", Build.BOARD);
Log.e("BRAND", Build.BRAND);
Log.e("CPU_ABI", Build.CPU_ABI);
Log.e("DEVICE", Build.DEVICE);
Log.e("DISPLAY", Build.DISPLAY);
Log.e("FINGERPRINT", Build.FINGERPRINT);
Log.e("HOST", Build.HOST);
Log.e("ID", Build.ID);
Log.e("MANUFACTURER", Build.MANUFACTURER);
Log.e("MODEL", Build.MODEL);
Log.e("PRODUCT", Build.PRODUCT);
Log.e("TAGS", Build.TAGS);
Log.e("TYPE", Build.TYPE);
Log.e("USER", Build.USER);
}
저작자 표시 비영리 변경 금지
신고

java DateUtil

Program/JAVA 2010.06.18 11:32

package common;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Locale;

/**
* <b>기능</b> : <p>날짜 및 시간을 시스템으로부터 연산하는 클래스입니다. 
*
* @author Administrator
* @since 1.0
* @see java.util.Date
*/
public class DateUtil {

    public static final  int YEAR       = 1;
    public static final  int MONTH      = 2;
    public static final  int DATE       = 3;
    public static final  int MONTHFIRST = 4;
    public static final  int MONTHEND   = 5;
    
/**
  * <p>현재 날짜와 시각을  yyyyMMdd 형태로 변환 후 return.
     *
  * @param null
  * @return yyyyMMdd
  * 
  * <pre> 
  *  - 사용 예
  * String date = DateUtil.getYyyymmdd()
  * </pre>
  */
public static String getYyyymmdd(Calendar cal) {
     Locale currentLocale = new Locale("KOREAN", "KOREA");
     String pattern = "yyyyMMdd";
     SimpleDateFormat formatter = new SimpleDateFormat(pattern, currentLocale);
     return formatter.format(cal.getTime());
}

    /**
     * <p>GregorianCalendar 객체를 반환함.
  * 
  * @param yyyymmdd 날짜 인수
  * @return GregorianCalendar
     * @see java.util.Calendar 
     * @see java.util.GregorianCalendar
     * <p><pre>
     *  - 사용 예
     * Calendar cal = DateUtil.getGregorianCalendar(DateUtil.getCurrentYyyymmdd())
     * </pre>
  */
public static GregorianCalendar getGregorianCalendar(String yyyymmdd) {

     int yyyy = Integer.parseInt(yyyymmdd.substring(0, 4));
     int mm = Integer.parseInt(yyyymmdd.substring(4, 6));
     int dd = Integer.parseInt(yyyymmdd.substring(6));

     GregorianCalendar calendar = new GregorianCalendar(yyyy, mm - 1, dd, 0, 0, 0);

     return calendar;

}

    /**
    * <p>현재 날짜와 시각을  yyyyMMddhhmmss 형태로 변환 후 return.
    * 
  * @param null
* @return yyyyMMddhhmmss
* @see java.util.Date
    * @see java.util.Locale
    * <p><pre> 
    *  - 사용 예
    * String date = DateUtil.getCurrentDateTime()
    * </pre>
    */
    public static String getCurrentDateTime() {
        Date today = new Date();
        Locale currentLocale = new Locale("KOREAN", "KOREA");
        String pattern = "yyyyMMddHHmmss";
        SimpleDateFormat formatter = new SimpleDateFormat(pattern, currentLocale);
        return formatter.format(today);
    }

    /**
    * <p>현재  시각을  hhmmss 형태로 변환 후 return.
    * 
  * @param null
* @return hhmmss
* @see java.util.Date
    * @see java.util.Locale
    * <p><pre>
    *  - 사용 예
    *   String date = DateUtil.getCurrentDateTime()
    * </pre>
    */
    public static String getCurrentTime() {
        Date today = new Date();
        Locale currentLocale = new Locale("KOREAN", "KOREA");
        String pattern = "HHmmss";
        SimpleDateFormat formatter = new SimpleDateFormat(pattern, currentLocale);
        return formatter.format(today);

    }

    /**
    * <p>현재 날짜를 yyyyMMdd 형태로 변환 후 return.
    * 
  * @param null
* @return yyyyMMdd * 
    * <p><pre> 
    *  - 사용 예
    * String date = DateUtil.getCurrentYyyymmdd()
    * </pre>
    */
    public static String getCurrentYyyymmdd() {
        return getCurrentDateTime().substring(0, 8);
    }

/**
     * <p>주로 일자를 구하는 메소드.
     *
     * @param yyyymm 년월
     * @param week 몇번째 주
     * @param pattern 리턴되는 날짜패턴 (ex:yyyyMMdd)
     * @return 연산된 날짜
     * @see java.util.Calendar
     * <p><pre>
     *  - 사용 예
     * String date = DateUtil.getWeekToDay("200801" , 1, "yyyyMMdd")
     * </pre>
     */
    public static String getWeekToDay(String yyyymm, int week, String pattern) {

  Calendar cal = Calendar.getInstance(Locale.FRANCE);

  int new_yy = Integer.parseInt(yyyymm.substring(0,4));
  int new_mm = Integer.parseInt(yyyymm.substring(4,6));
  int new_dd = 1;

  cal.set(new_yy,new_mm-1,new_dd);
  
  // 임시 코드
  if (cal.get(cal.DAY_OF_WEEK) == cal.SUNDAY) {
   week = week - 1;
  }  
  
  cal.add(Calendar.DATE, (week-1)*7+(cal.getFirstDayOfWeek()-cal.get(Calendar.DAY_OF_WEEK)));

        SimpleDateFormat formatter = new SimpleDateFormat(pattern, Locale.FRANCE);
        
        return formatter.format(cal.getTime());
        
    }

    /**
     * <p>지정된 플래그에 따라 연도 , 월 , 일자를 연산한다.
     *
     * @param field 연산 필드
     * @param amount 더할 수
     * @param date 연산 대상 날짜
     * @return 연산된 날짜
     * @see java.util.Calendar
     * <p><pre>
     *  - 사용 예
     * String date = DateUtil.getOpDate(java.util.Calendar.DATE , 1, "20080101")
     * </pre>
     */
public static String getOpDate(int field, int amount, String date) {

     GregorianCalendar calDate = getGregorianCalendar(date);

     if (field == Calendar.YEAR) {
         calDate.add(GregorianCalendar.YEAR, amount);
     } else if (field == Calendar.MONTH) {
         calDate.add(GregorianCalendar.MONTH, amount);
     } else {
         calDate.add(GregorianCalendar.DATE, amount);
     }

     return getYyyymmdd(calDate);

}

/**
     *  <p>입력된 일자를 더한 주를 구하여 return한다
     *  
     * @param yyyymmdd 년도별 
     * @param addDay 추가일 
     * @return 연산된 주
     * @see java.util.Calendar
     * <p><pre>
     *  - 사용 예
     * int date = DateUtil.getWeek(DateUtil.getCurrentYyyymmdd() , 0)
     * </pre>
     */
public static int getWeek(String yyyymmdd, int addDay){
  Calendar cal = Calendar.getInstance(Locale.FRANCE);
  int new_yy = Integer.parseInt(yyyymmdd.substring(0,4));
  int new_mm = Integer.parseInt(yyyymmdd.substring(4,6));
  int new_dd = Integer.parseInt(yyyymmdd.substring(6,8));

  cal.set(new_yy,new_mm-1,new_dd);
        cal.add(Calendar.DATE, addDay);

  int week = cal.get(Calendar.DAY_OF_WEEK);
  return week;
}

    /** 
     * <p>입력된 년월의 마지막 일수를 return 한다.
     * 
     * @param year
     * @param month
     * @return 마지막 일수 
     * @see java.util.Calendar
     * <p><pre>
     *  - 사용 예
     * int date = DateUtil.getLastDayOfMon(2008 , 1)
     * </pre>
     */
    public static int getLastDayOfMon(int year, int month) { 

        Calendar cal = Calendar.getInstance();
        cal.set(year, month, 1);
        return cal.getActualMaximum(Calendar.DAY_OF_MONTH);
     
    }//:

    /** 
     * <p>입력된 년월의 마지막 일수를 return한다
     * 
     * @param year
     * @param month
     * @return 마지막 일수  
     * <p><pre>
     *  - 사용 예
     * int date = DateUtil.getLastDayOfMon("2008")
     * </pre>
     */ 
    public static int getLastDayOfMon(String yyyymm) {

        Calendar cal = Calendar.getInstance();
        int yyyy = Integer.parseInt(yyyymm.substring(0, 4));
        int mm = Integer.parseInt(yyyymm.substring(4)) - 1;

        cal.set(yyyy, mm, 1);
        return cal.getActualMaximum(Calendar.DAY_OF_MONTH);
    }
    
    /** 
     * <p>입력된 날자가 올바른지 확인합니다. 
     * 
     * @param yyyymmdd
     * @return boolean 
     * <p><pre>
     *  - 사용 예
     * boolean b = DateUtil.isCorrect("20080101")
     * </pre>
     */ 
    public static boolean isCorrect(String yyyymmdd)
    {     
     boolean flag  =  false;
     if(yyyymmdd.length() < 8 ) return false; 
     try
     {
      int yyyy = Integer.parseInt(yyyymmdd.substring(0, 4));
      int mm   = Integer.parseInt(yyyymmdd.substring(4, 6));
      int dd   = Integer.parseInt(yyyymmdd.substring(6));
      flag     = DateUtil.isCorrect( yyyy,  mm,  dd);
     }
     catch(Exception ex)
     {
      return false; 
     }
     return flag;
    }//:
    
    /** 
     * <p>입력된 날자가 올바른 날자인지 확인합니다. 
     * 
     * @param yyyy
     * @param mm
     * @param dd
     * @return boolean
     * <p><pre>
     *  - 사용 예
     * boolean b = DateUtil.isCorrect(2008,1,1)
     * </pre>
     */
    public static boolean isCorrect(int  yyyy, int mm, int dd)
    {
     if(yyyy < 0 || mm < 0 || dd < 0) return false;
     if(mm > 12 || dd > 31) return false; 
     
     String year     = "" + yyyy; 
     String month    = "00" + mm;
     String year_str = year + month.substring(month.length() - 2);
     int endday      = DateUtil.getLastDayOfMon(year_str);
     
     if(dd > endday) return false; 
     
     return true; 
     
    }//:
    
    /** 
     * <p>현재 일자를 입력된 type의 날짜로 반환합니다.
     * 
     * @param type
     * @return String
     * @see java.text.DateFormat
     * <p><pre>
     *  - 사용 예
     * String date = DateUtil.getThisDay("yyyymmddhhmmss")
     * </pre>
     */    
    public static String getThisDay(String type)
    {
        Date date = new Date();
        SimpleDateFormat sdf = null;
        
        try{
         if(type.toLowerCase().equals("yyyymmdd"))
         {
             sdf = new SimpleDateFormat("yyyyMMdd");
             return sdf.format(date);
         }
         if(type.toLowerCase().equals("yyyymmddhh"))
         {
             sdf = new SimpleDateFormat("yyyyMMddHH");
             return sdf.format(date);
         }
         if(type.toLowerCase().equals("yyyymmddhhmm"))
         {
             sdf = new SimpleDateFormat("yyyyMMddHHmm");
             return sdf.format(date);
         }
         if(type.toLowerCase().equals("yyyymmddhhmmss"))
         {
             sdf = new SimpleDateFormat("yyyyMMddHHmmss");
             return sdf.format(date);
         }
         if(type.toLowerCase().equals("yyyymmddhhmmssms"))
         {
             sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
             return sdf.format(date);
         } 
         else
         {
          sdf = new SimpleDateFormat(type);
             return sdf.format(date);
         }
        }catch(Exception e){
            return "[ ERROR ]: parameter must be 'YYYYMMDD', 'YYYYMMDDHH', 'YYYYMMDDHHSS'or 'YYYYMMDDHHSSMS'";
        }
    }

    /** 
     * <p>입력된 일자를 '9999년 99월 99일' 형태로 변환하여 반환한다.
     * 
     * @param yyyymmdd
     * @return String
     * <p><pre>
     *  - 사용 예
     * String date = DateUtil.changeDateFormat("20080101")
     * </pre>
     */      
public static String changeDateFormat(String yyyymmdd)
    {
     String rtnDate=null;    

  String yyyy = yyyymmdd.substring(0, 4);
  String mm   = yyyymmdd.substring(4,6);
  String dd   = yyyymmdd.substring(6,8);
  rtnDate=yyyy+" 년 "+mm + " 월 "+dd + " 일";  
     
     return rtnDate;
     
    }

    /** 
     * <p>두 날짜간의 날짜수를 반환(윤년을 감안함)
     * 
  * @param startDate 시작 날짜
  * @param endDate 끝 날짜
  * @return 날수
     * @see java.util.GregorianCalendar 
     * <p><pre>
     *  - 사용 예
     * long date = DateUtil.getDifferDays("20080101","20080202")
     * </pre>
     */ 
public static long getDifferDays(String startDate, String endDate) {

     GregorianCalendar StartDate = getGregorianCalendar(startDate);
     GregorianCalendar EndDate = getGregorianCalendar(endDate);
     long difer = (EndDate.getTime().getTime() - StartDate.getTime().getTime()) / 86400000;
     return difer;

    }

    /** 
     * <p>현재의 요일을 구한다.
     * 
  * @param
  * @return 요일
     * @see java.util.Calendar 
     * <p><pre>
     *  - 사용 예
     * int day = DateUtil.getDayOfWeek()
     *  SUNDAY    = 1
     *  MONDAY    = 2
     *  TUESDAY   = 3
     *  WEDNESDAY = 4
     *  THURSDAY  = 5
     *  FRIDAY    = 6
     * </pre>
     */
    public static int getDayOfWeek(){
        Calendar rightNow = Calendar.getInstance();
        int day_of_week = rightNow.get(Calendar.DAY_OF_WEEK);
        return day_of_week;
    }

    /** 
     * <p>현재주가 올해 전체의 몇째주에 해당되는지 계산한다. 
     * 
  * @param
  * @return 요일
     * @see java.util.Calendar 
     * <p><pre>
     *  - 사용 예
     * int day = DateUtil.getWeekOfYear()
     * </pre>
     */    
    public static int getWeekOfYear(){
     Locale LOCALE_COUNTRY = Locale.KOREA;
        Calendar rightNow = Calendar.getInstance(LOCALE_COUNTRY);
        int week_of_year = rightNow.get(Calendar.WEEK_OF_YEAR);
        return week_of_year;
    }
    
    /** 
     * <p>현재주가 현재월에 몇째주에 해당되는지 계산한다. 
     * 
  * @param
  * @return 요일
     * @see java.util.Calendar 
     * <p><pre>
     *  - 사용 예
     * int day = DateUtil.getWeekOfMonth()
     * </pre>
     */     
    public static int getWeekOfMonth(){
     Locale LOCALE_COUNTRY = Locale.KOREA;
        Calendar rightNow = Calendar.getInstance(LOCALE_COUNTRY);
        int week_of_month = rightNow.get(Calendar.WEEK_OF_MONTH);
        return week_of_month;
    }
    
    /** 
     * <p>해당 p_date날짜에 Calendar 객체를 반환함.
     * 
  * @param p_date
  * @return Calendar
     * @see java.util.Calendar 
     * <p><pre>
     *  - 사용 예
     * Calendar cal = DateUtil.getCalendarInstance(DateUtil.getCurrentYyyymmdd())
     * </pre>
     */ 
    public static Calendar getCalendarInstance(String p_date){
     //Locale LOCALE_COUNTRY = Locale.KOREA;
     Locale LOCALE_COUNTRY = Locale.FRANCE;
        Calendar retCal = Calendar.getInstance(LOCALE_COUNTRY);

        if(p_date != null && p_date.length() == 8){
            int year  = Integer.parseInt(p_date.substring(0,4));
            int month = Integer.parseInt(p_date.substring(4,6))-1;
            int date  = Integer.parseInt(p_date.substring(6));

            retCal.set(year, month, date);
       }
       return retCal;
    }

}
저작자 표시 비영리 변경 금지
신고

'Program > JAVA' 카테고리의 다른 글

java DateUtil  (0) 2010.06.18
tomcat 5.5 버전에서의 server.xml 설정하기 context path 추가하기  (0) 2008.05.19
tomcat web.xml  (0) 2008.05.19
tomcat 6.0 host 추가  (0) 2008.05.19
tomcat server.xml  (0) 2008.05.19
Tomcat 5 JNDI DataSource를 통한 DB 커넥션 풀 사용  (0) 2008.05.19

[Android] BitmapDrawable과 Bitmap

Program/Android 2010.05.20 10:34

 

출처 : http://blog.vizpei.kr/105116344 

 

[Intro]

 

보통 BitmapFactory의 decode 함수들은 메모리 Leak이 존재한다고 알려져 있습니다.

(2.1에서 수정이 되었는지 아직도 그대로인지는 잘 모르겠습니다.)

 

실제로 안그럴지 몰라도,

decode를 하면 할 수록 메모리 Leak의 위험부담은 더 커지기 마련이죠.

제가 처음에 Drawable을 Bitmap으로 바꿀 때 BitmapFactory를 사용 했었습니다.

 

정확히 말하면 Drawable을 Bitmap으로 바꾼 것이 아니라

RawResourceInputStream으로 얻어와서 BitmapFactory로 decode한 것이었죠.

Bitmap bitmap;
InputStream stream;
stream = context.getResources().openRawResource(resource);
try {
    bitmap = BitmapFactory.decodeStream(stream);

finally {
    try { stream.close(); } 
    catch(IOException e) {}
}

하지만 위의 코드는 계속 BitmapFactory를 호출 하기 때문에

잠재적인 위험을 가지고 있습니다.

 

그렇다면 리소스로 부터 Bitmap을 얻어내고 싶다면 어떻게 해야 할까요?

 

 

[Googling...]

 

일단 포스팅 하기전에 구글링을 좀 해봤습니다.

상위 몇개의 검색 결과를 살펴보니...

 

구글링으로 살펴본 결과들은 대부분 아래와 같이 되어있었습니다.

Bitmap bitmap = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
drawable.setBounds(0, 0, w, h);
drawable.draw(canvas);

1. 빈 Bitmap을 만들고

2. Canvas를 연결 한 뒤

3. Drawable의 draw메소드를 통해 Bitmap과 연결된 Canvas에 Drawable의 내용을 그립니다.

 

물론 이 방법이 틀린 것은 아닙니다.

하지만 만들어 줘야 하는것이,

 

1. Drawable 크기만한 빈 Bitmap

2. Bitmap에 연결할 Canvas

3. 크기를 가지는 Width, Height 변수

 

Drawable 객체를 제외하고 두개의 객체두개의 변수를 더 만들어야 합니다.

중간에 setBounds() 메소드도 호출 해야 겠죠.

 

근데 여기서 한가지 잘 생각해 봐야 할 것이 있습니다.

View안에서는 Drawable을 잘 사용해서 이미지를 표시해 주고 있다는 점입니다.

Layout XML 파일 안에서 ImageView의 이미지를 지정해 줄 때

Drawable을 잘~ 사용해왔다는 것이 하나의 예가 될 수 있겠네요.

 

그렇다면 Drawable이 당연히 Bitmap을 가지고 있어야 하지 않을까요?

 

 

[BitmapDrawable]

 

질문에 대한 답은 바로 BitmapDrawable에 담겨있습니다.

아래의 코드를 보시죠!

BitmapDrawable drawable =
            (BitmapDrawable) getResources().getDrawable(R.drawable.icon);
Bitmap bitmap = drawable.getBitmap();

읭...? 이게 끝입니다.

BitmapDrawable을 사용하면 Bitmap을 손쉽게 얻어 올 수 있습니다.

위의 길고 긴 코드가 단 두 줄로 줄어 들었습니다.

 

따로 Bitmap을 만들지 않아도 됩니다.

그냥 Drawable안에 있는 Bitmap을 사용하기만 하면 됩니다.

 

 

[주의사항!]

 

BitmapDrawable을 사용하면 손쉽게 Bitmap을 얻을 수는 있지만,

Drawable이 꼭 BitmapDrawable만 존재 하는 것은 아닙니다.

대표적인 예로 ShapeDrawable이 있을 수 있겠네요.

ShapeDrawable을 사용하면 원하는 도형(Shape 객체)을 Drawable로 사용 할 수 있습니다.

 

하지만 getBitmap() 메소드가 없기 때문에

ShapeDrawable로 부터 Bitmap을 얻어 올 수는 없습니다.

굳이 도형을 Bitmap으로 바꾸고 싶다면 위에서 봤던 빈 Bitmap과 Canvas를 만들어서

draw() 메소드를 통해 그리는 방법 밖에는 없습니다.

 

아마도 대부분의 경우 drawable 디렉토리에 있는 이미지들을 Bitmap으로 사용하려고 하지,

Shape을 Bitmap으로 사용하려고 하지는 않을 거라 생각합니다.

네네... 그럴겁니다...

 

 

[BitmapDrawable Bitmap의 특징]

 

BitmapDrawable에서 얻어온 Bitmap 객체는 보통녀석이 아닙니다.

특징을 한번 살펴 봅시다.

 

1. 우선, Bitmap을 얻어 올 때는 final 입니다.

 

레퍼런스에 보면 final로 선언되어 있습니다.

즉, 변경하지 않겠다는 의지를 표현 한 것이죠.

사실 리턴에 final을 붙여봤자 대입되는 변수와는 아무 상관이 없습니다... 네... 넘어가죠.

 

2. Immutable 입니다.

 

좀 더 강력한 녀석이 나왔습니다. Immutable, 즉, 변경 불가입니다.

Canvas canvas = new Canvas(bitmap);

만약 위와 같은 시도를 한다면, 아래와 같은 Exception이 발생 할겁니다.

Caused by: java.lang.IllegalStateException: Immutable bitmap passed to Canvas constructor

3. 절대 recycle() 메소드를 호출 해서는 안됩니다!

 

Bitmap을 얻어와서 그릴거 다 그렸다고 무의식적으로 recycle() 메소드를 호출 했다...

그럼 아래와 같은 메세지를 볼 수 있습니다.

java.lang.RuntimeException: Canvas: trying to use a recycled bitmap android.graphics.Bitmap@43774438

위의 상황은 ImageView 같은데서 사용하고 있던 Drawable의 Bitmap 객체를 얻어와서

그 Bitmap 객체에 recycle() 메소드를 호출 한 상황입니다.

한마디로 Bitmap 객체를 공유해서 사용한다고 볼 수 있겠죠.

 

 

[One more Tip - Bitmap copy]

 

그렇다면 BitmapDrawable로 부터 얻어낸 Bitmap 객체를

마음대로 바꾸고, 쓰고, 버리고 싶다면 어떻게 해야 할까요?

 

그냥 copy() 하면 됩니다.

Bitmap bitmap = drawable.getBitmap().copy(Config.ARGB_8888, true);

Mutable로 복사하면 마음대로 변경해서 사용 할 수 있습니다!

 

 

[Outro]

 

이번에는 BitmapDrawable과 Bitmap에 대해서 살짝 살펴보았습니다.

 

앞에서는 BitmapDrawable을 Bitmap으로 바꾸는 이야기만 했었지만,

반대로 Bimap을 Drawable로 바꾸고 싶다면

BitmapDrawable의 생성자를 사용하면 간단히 Drawable로 만들 수 있습니다.

 

물론 구글링해서 찾은 방법이 틀린 방법은 아닙니다.

이미지와 관련이 없는 Drawable을 다루고자 할 때는

번거롭게도 draw() 메소드를 이용 해야 하는것이 맞지만,

이미지와 관련된 Drawable을 다루고자 할 때는 분명 BitmapDrawable을 사용하는 것이 더 편합니다.

 

네... 제가 하고 싶은말은 그겁니다.

이미지 파일 힘들게 바꾸지 맙시다!

저작자 표시 비영리 변경 금지
신고

DB2 SQLSTATE 메시지

DB/DB2 2010.03.16 09:21

SQLSTATE 메시지

Error Code
이 절에서는 SQLSTATE와 해당되는 의미를 나열합니다. SQLSTATE는 클래스 코드별로 그룹지어집니다. 부속 코드에 대해서는 해당 테이블을 참조하십시오.

표 2. SQLSTATE 클래스 코드
클래스
코드
 
의미
부속 코드에 대해
참조할 페이지
00 규정되지 않은 성공적인 완료 표 3
01 경고 표 4
02 데이터 없음 표 5
07 동적 SQL 오류 표 6
08 연결 예외 표 7
09 트리거 조치 예외 표 8
0A 기능(feature)이 지원되지 않음 표 9
0D 유효하지 않은 목표 유형 스펙 표 10
0F 유효하지 않은 토큰 표 11
0K 유효하지 않은 RESIGNAL문 표 12
20 CASE문에 해당하는 Case가 없음 표 13
21 카디낼리티 위반 표 14
22 데이터 예외 표 15
23 제한조건 위반 표 16
24 유효하지 않은 커서 상태 표 17
25 유효하지 않은 트랜잭션 상태 표 18
26 유효하지 않은 SQL문 ID 표 19
28 유효하지 않은 권한 부여 스펙 표 21
2D 유효하지 않은 트랜잭션 종료 표 22
2E 유효하지 않은 연결 이름 표 23
34 유효하지 않은 커서 이름 표 24
36 커서 감도 예외 표 25
38 외부 함수 예외 표 26
39 외부 함수 호출 예외 표 27
3B 유효하지 않은 SAVEPOINT 표 28
40 트랜잭션 롤백 표 29
42 구문 오류 또는 액세스 규칙 위반 표 30
44 WITH CHECK OPTION 위반 표 31
46 Java DDL 표 32
51 유효하지 않은 응용프로그램 상태 표 33
53 유효하지 않은 피연산자 또는 불일치 스펙 표 34
54 SQL 또는 제품 한계가 초과됨 표 35
55 오브젝트가 전제(Prerequisite) 상태에 있지 않음 표 36
56 기타 SQL 또는 제품 오류 표 37
57 자원이 사용 가능하지 않거나 조작원이 개입함 표 38
58 시스템 오류 표 39

클래스 코드 00 규정되지 않은 성공적인 완료

표 3. 클래스 코드 00: 규정되지 않은 성공적인 완료
SQLSTATE 값  
의미
00000 조작을 정상적으로 실행했으며 어떠한 유형의 경고 또는 예외 상황도 발생하지 않았습니다.

클래스 코드 01 경고

표 4. 클래스 코드 01: 경고
SQLSTATE 값  
의미
01002 DISCONNECT 오류가 발생했습니다.
01003 널(NULL) 값이 컬럼 함수의 인수에서 제거되었습니다.
01004 문자열 값이 짧은 길이로 다른 문자열 데이터 유형에 지정될 때 절단되었습니다.
01005 SQLDA 내의 항목 수가 충분하지 않습니다.
01007 특권이 부여되지 않았습니다.
0100C 프로시저로부터 하나 이상의 임시(ad hoc) 결과 세트가 리턴되었습니다.
0100D 닫혀진 커서가 체인 내에 있는 다음 결과 세트에 대해 다시 열렸습니다.
0100E 프로시저가 허용되는 최대수를 초과하는 결과 세트를 생성했습니다. 첫 번째 정수 결과 세트만이 호출자에게 리턴되었습니다.
01503 결과 컬럼의 수가 제공된 호스트 변수의 수보다 큽니다.
01504 UPDATE 또는 DELETE문이 WHERE절을 포함하지 않습니다.
01506 산술 연산의 결과로 나온 유효하지 않은 날짜를 정정하기 위해 DATE 또는 TIMESTAMP값이 조정되었습니다.
01509 사용자의 가상 머신에 스토리지가 충분하지 않으므로 커서에 대한 블로킹이 취소되었습니다.
01515 컬럼의 널(NULL)이 아닌 값이 호스트 변수의 범위 내에 있지 않으므로 널(NULL) 값이 호스트 변수에 지정되었습니다.
01516 적용할 수 없는 WITH GRANT OPTION이 무시되었습니다.
01517 변환할 수 없는 문자가 대체 문자로 바뀌였습니다.
01519 숫자 값이 범위를 벗어나므로 널(NULL) 값이 호스트 변수에 지정되었습니다.
01524 컬럼 함수의 결과에 산술 연산식 평가로 생성된 널(NULL) 값이 들어 있지 않습니다.
01526 분리 레벨이 에스컬레이션되었습니다.
01527 SET문이 AS에 존재하지 않는 특수 레지스터를 참조합니다.
01539 연결에는 성공했으나, SBCS 문자만 사용되어야 합니다.
01543 중복된 제한조건이 무시되었습니다.
01545 규정되지 않은 컬럼 이름이 상관 참조로 해석되었습니다.
01550 설명이 지정된 인덱스가 이미 있으므로, 인덱스가 작성되지 않았습니다.
01560 중복된 GRANT가 무시되었습니다.
01562 데이터베이스 구성 파일의 로그에 대한 새 경로(newlogpath)가 유효하지 않습니다.
01563 로그 파일에 대한 현재 경로(logpath)가 유효하지 않습니다. 로그 파일 경로가 디폴트값으로 재설정됩니다.
01564 0으로 나누어 호스트 변수에 널(NULL) 값이 지정되었습니다.
01586 참조 구조에서 상위 테이블에 대한 제한조건을 OFF로 설정하면, 하나 이상의 하위 테이블이 자동으로 점검 보류 상태가 됩니다.
01589 명령문에 불필요한 스펙이 들어 있습니다.
01592 SOURCE 함수를 참조하는 CREATE FUNCTION문에서
  • 입력 매개변수의 길이, 정밀도 또는 스케일이 소스 함수의 해당 매개변수의 길이, 정밀도 또는 스케일보다 크거나 또는
  • RETURNS나 CAST FROM 매개변수의 길이, 정밀도 또는 스케일이 소스 함수의 길이, 정밀도 또는 스케일보다 작거나 또는
  • CREATE FUNCTION문에 있는 CAST FROM 매개변수의 길이, 정밀도 또는 스케일이 RETURNS 매개변수의 길이, 정밀도 또는 스케일보다 큽니다.
런타임시 절단될 수 있습니다.(그리고 이때 오류가 발생할 수 있습니다.)
01594 SQLDA에서 ALL 정보의 항목 수가 충분하지 않습니다.(예: 구별 이름을 리턴하는 데 필요한 디스크립터가 충분하지 않습니다.)
01595 해당 뷰가 기존의 유효하지 않은 뷰를 대체했습니다.
01596 Long 문자열 데이터 유형에 근거한 구별 유형에 대해 비교 함수가 작성되지 않았습니다.
01598 이미 사용 중인 이벤트 모니터를 활성화하거나 사용하고 있지 않은 이벤트 모니터를 비활성화하려고 시도했습니다.
01599 REBIND에 대한 바인드 옵션이 무시되었습니다.
01602 최적화 레벨이 감소되었습니다.
01603 CHECK DATA 처리 중 제한조건 위반을 발견하고 이를 예외 테이블로 이동시켰습니다.
01604 SQL문이 Explain되었으나 실행되지 않았습니다.
01605 재귀 공통 테이블 표현식에 무한 루프가 들어 있을 수 있습니다.
01606 노드 또는 시스템 데이터베이스 디렉토리가 비어 있습니다.
01607 읽기 전용 트랜잭션의 노드에 대한 시간 차이가 정의된 임계값을 초과합니다.
01609 프로시저가 허용되는 최대수를 초과하는 결과 세트를 생성했습니다. 첫 번째 정수 결과 세트만이 호출자에게 리턴되었습니다.
01610 프로시저로부터 하나 이상의 임시(ad hoc) 결과 세트가 리턴되었습니다.
01611 닫혀진 커서가 체인 내에 있는 다음 결과 세트에 대해 다시 열렸습니다.
01614 로케이터 수가 결과 세트 수보다 적습니다.
01616 계산된 CPU 비용이 자원 한계를 초과합니다.
01618 노드 그룹을 재분배하려면 데이터 파티션을 변경해야 합니다.
01620 UNION ALL의 일부 기본 테이블이 동일한 테이블일 수도 있습니다.
01621 검색된 LOB 값이 변경되었을 수도 있습니다.
01622 명령문이 완료되었으나, 명령문이 완료된 후에 시스템 오류가 발생했습니다.
01623 DEGREE 값이 무시됩니다.
01625 스키마 이름은 CURRENT PATH에서 두 번 이상 나타납니다.
01626 데이터베이스에 사용 중인 버퍼 풀이 하나만 있습니다.
01627 DATALINK 값은 테이블이 조정 보류 중이거나 조정할 수 없는 상태이므로 유효하지 않을 것입니다.
01632 동시 연결의 수가 제품에 대해 정의된 한계를 초과했습니다.
01633 구체화된 쿼리 테이블을 쿼리 처리 최적화에 사용하지 못할 수도 있습니다.
01636 비증분식 데이터의 무결성이 데이터베이스 관리 프로그램에서 확인되지 않았습니다.
01637 디버깅이 작동 가능하지 않습니다.
01639 페더레이티드 오브젝트에는 호출자가 데이터 소스 오브젝트에 대한 필수 특권을 갖고 있어야 합니다.
01641 데이터 링크 유형 속성은 구조화된 유형의 사용을 제한합니다.
01642 컬럼이 가장 큰 USER 디폴트값이 들어갈 만큼 크지 않습니다.
01643 SQL 루틴의 SQLSTATE 또는 SQLCODE 변수에 지정한 값을 겹쳐쓸 수 있으며, 지정된 값으로 핸들러가 활성화되지 않습니다.
01645 SQL 프로시저의 실행 파일이 데이터베이스 카탈로그에 저장되어 있지 않습니다.
01648 VALUE COMPRESSION이 테이블에 대해 비활성화되었으므로 COMPRESS 컬럼 속성이 무시되었습니다.
01649 버퍼 풀 조작이 완료되었으나 다음에 데이터베이스를 재시작할 때까지 적용되지 않습니다.
01650 인덱스와 테이블 통계가 일치하지 않습니다.
01651 이벤트 모니터가 활성화되었지만, 일부 모니터링 정보가 손실되었을 수 있습니다.
01652 명령문 컨텍스트로 인해 분리 절이 무시됩니다.
01653 USER에게 권한을 부여하였습니다. 권한 부여 이름이 8바이트를 초과하기 때문에 그룹이 고려되지 않았습니다.
01654 버퍼 풀이 시작되지 않았습니다.
01655 이벤트 모니터가 작성되었지만, 최소한 하나의 이벤트 모니터 목표 테이블이 이미 존재합니다.
01657 다음에 데이터베이스를 시작할 때까지 버퍼 풀 조작이 적용되지 않습니다.
01665 컬럼 이름 또는 매개변수 이름이 절단되었습니다.
01667 뷰를 쿼리 처리 최적화에 사용하지 못할 수도 있습니다.
01669 지정된 별칭에 통계가 리모트와 로컬 카탈로그 간의 스키마 불일치로 인해 갱신되지 않았습니다.
01670 새로운 테이블에 대한 기본 디폴트 테이블 스페이스가 없습니다.
01671 캐시된 명령문의 환경이 현재 환경과 다릅니다. 현재 환경은 지정된 명령문을 다시 최적화하는 데 사용됩니다.
01H51 MQSeries Application Messaging Interface 메시지가 절단되었습니다.
01HXX 사용자 정의 함수(UDF) 또는 외부 프로시저 CALL에 의해 유효한 경고 SQLSTATE가 리턴되었습니다.

클래스 코드 02 데이터 없음

표 5. 클래스 코드 02: 데이터 없음
SQLSTATE 값  
의미
02000 다음 예외 중 하나가 발생했습니다.
  • SELECT INTO문 또는 INSERT문의 subselect의 결과가 빈 테이블이었습니다.
  • 검색한 UPDATE 또는 DELETE문에서 식별된 행 수가 0이었습니다.
  • FETCH문에서 참조된 커서의 위치가 결과 테이블의 마지막 행 다음입니다.
02501 커서 위치가 현재 행의 FETCH에 유효하지 않습니다.
02502 홀(hole) 삭제 또는 갱신이 발견되었습니다.

클래스 코드 07 동적 SQL 오류

표 6. 클래스 코드 07: 동적 SQL 오류
SQLSTATE 값  
의미
07001 호스트 변수의 수가 매개변수 표시문자의 수에 대해 올바르지 않습니다.
07002 호출 매개변수 목록 또는 제어 블록이 유효하지 않습니다.
07003 EXECUTE문에서 식별된 명령문이 SELECT문이거나, 준비된 상태가 아닙니다.
07004 동적 매개변수에 USING절 또는 INTO절이 필요합니다.
07005 커서의 명령문 이름이 준비된 명령문을 식별하는데, 이 명령문은 커서와 연관될 수 없습니다.
07006 입력 호스트 변수의 데이터 유형 때문에 이 변수를 사용할 수 없습니다.

클래스 코드 08 연결 예외

표 7. 클래스 코드 08: 연결 예외
SQLSTATE 값  
의미
08001 응용프로그램 리퀘스터가 연결을 설정할 수 없습니다.
08002 연결이 이미 존재합니다.
08003 연결이 존재하지 않습니다.
08004 응용프로그램 서버(AS)가 연결 설정을 거부했습니다.
08007 알 수 없는 트랜잭션 해석(resolution).
08502 사용 가능한 트랜잭션 관리 프로그램이 없어서 TWOPHASE의 SYNCPOINT로 실행 중인 응용프로그램 프로세스에서 발행한 CONNECT문이 실패했습니다.
08504 지정된 경로 이름 바꾸기 구성 파일을 처리하는 중에 오류가 발견되었습니다.

클래스 코드 09 트리거 조치 예외

표 8. 클래스 코드 09: 트리거 조치 예외
SQLSTATE 값  
의미
09000 트리거 SQL문이 실패했습니다.

클래스 코드 0A 기능(feature)이 지원되지 않음

표 9. 클래스 코드 0A: 기능(feature)이 지원되지 않음
SQLSTATE 값  
의미
0A001 프로세스가 연결 가능한 상태에 있지 않으므로, CONNECT문이 유효하지 않습니다.
0A502 이 데이터베이스 인스턴스에 대한 조치 또는 조작이 작동 가능하지 않습니다.
0A503 데이터의 불일치 가능성이 있으므로 페더레이티드 삽입, 갱신 또는 삭제 조작을 컴파일할 수 없습니다.

클래스 코드 0D 유효하지 않은 목표 유형 스펙

표 10. 클래스 코드 0D: 유효하지 않은 유형 스펙
SQLSTATE 값  
의미
0D000 목표 구조화된 데이터 유형 스펙이 적절한 소스 구조화된 데이터 유형의 부속 유형이 아닙니다.

클래스 코드 0F 유효하지 않은 토큰

표 11. 클래스 코드 0F: 유효하지 않은 토큰
SQLSTATE 값  
의미
0F001 LOB 토큰 변수가 현재 어떤 값도 나타내지 않습니다.

클래스 코드 0K 유효하지 않은 RESIGNAL문

표 12. 클래스 코드 0K: 유효하지 않은 RESIGNAL문
SQLSTATE 값  
의미
0K000 RESIGNAL문이 핸들러 내에 있지 않습니다.

클래스 코드 20 Case문에 해당되는 Case가 없음

표 13. 클래스 코드 20: Case문에 해당되는 Casre가 없음
SQLSTATE 값  
의미
20000 CASE문에 해당하는 Case가 없습니다.

클래스 코드 21 카디낼리티 위반

표 14. 클래스 코드 21: 카디낼리티 위반
SQLSTATE 값  
의미
21000 SELECT INTO의 결과가 두 행 이상의 결과 테이블이거나, 기본 술어의 서브쿼리 결과가 둘 이상의 값입니다.
21501 자체 참조 테이블로의 복수 행 삽입(INSERT)은 유효하지 않습니다.
21502 기본 키의 복수 행 갱신(UPDATE)은 유효하지 않습니다.
21504 RESTRICT나 SET NULL 삭제 규칙이 있는 자체 참조 테이블로부터의 복수 행 삭제(DELETE)는 유효하지 않습니다.
21505 행 함수는 둘 이상의 행을 리턴해서는 안됩니다.
21506 테이블의 동일한 행을 두 번 이상 갱신, 삭제 또는 삽입 조작의 목표로 사용할 수 없습니다.

클래스 코드 22 데이터 예외

표 15. 클래스 코드 22: 데이터 예외
SQLSTATE 값  
의미
22001 문자 데이터의 오른쪽 절단이 발생했습니다. 예를 들어, 갱신 또는 삽입 값이 컬럼에 비해 너무 긴 문자열이거나 날짜 시간 값이 너무 작아 호스트 변수에 지정할 수 없습니다.
22002 널(NULL) 값 또는 표시기 매개변수가 없습니다. 예를 들면, 표시기 변수가 지정되어 있지 않으므로, 호스트 변수에 널(NULL) 값을 지정할 수 없습니다.
22003 숫자 값이 범위를 벗어납니다.
22004 PARAMETER STYLE GENERAL로 정의된 프로시저 또는 널(Null)이 아닌 인수로 호출된 유형 보존 메소드에서 널(Null) 값이 리턴될 수 없습니다.
22007 유효하지 않은 날짜 시간 형식이 발견되었습니다. 즉, 유효하지 않은 문자열 표현이나 값이 지정되었습니다.
22008 날짜 시간 필드 오버플로우가 발생했습니다. 예를 들어, 날짜 또는 시간소인에 대한 산술 연산의 결과가 유효한 날짜 범위 내에 있지 않습니다.
2200G 대부분의 동적 유형이 일치하지 않습니다.
22011 부속 문자열 오류가 발생했습니다. 예를 들어, SUBSTR의 인수가 범위를 벗어납니다.
22012 0으로 나누는 것은 유효하지 않습니다.
22018 CAST, DECIMAL, FLOAT 또는 INTEGER 스칼라 함수에 대한 문자 값이 유효하지 않습니다.
22019 LIKE 술어에 유효하지 않은 Escape 문자가 있습니다.
22021 문자가 코드화된 문자 세트에 없습니다.
22024 NUL 종료 입력 호스트 변수 또는 매개변수가 NUL을 포함하지 않습니다.
22025 LIKE 술어 문자열 패턴에 유효하지 않은 Escape 문자의 어커런스가 들어 있습니다.
2202D 널(NULL) 인스턴스가 mutator 메소드에 사용되었습니다.
2202H TABLESAMPLE절의 샘플 크기가 유효하지 않습니다.
22501 가변 길이 문자열의 길이 제어 필드가 음수이거나 최대값보다 큽니다.
22504 혼합 데이터 값이 유효하지 않습니다.
22506 TOD 시계가 고장났거나 운영 체제 시간대 매개변수가 범위를 벗어났기 때문에, 날짜 시간 특수 레지스터에 대한 참조가 유효하지 않습니다.
22522 CCSID 값이 전혀 유효하지 않거나, 데이터 유형 또는 부속 유형에 유효하지 않거나, 코드화 체계에 유효하지 않습니다.
22526 키 변환 함수에서 행을 생성하지 않았거나 중복 행을 생성했습니다.
22527 다중 행 INSERT 조작에 유효하지 않은 입력 데이터가 발견되었습니다.

클래스 코드 23 제한조건 위반

표 16. 클래스 코드 23: 제한조건 위반
SQLSTATE 값  
의미
23001 상위 키의 갱신 또는 삭제는 RESTRICT 갱신 또는 삭제 규칙에 의해 금지됩니다.
23502 삽입 또는 갱신 값이 널(NULL)이지만, 컬럼이 널(NULL) 값을 포함할 수 없습니다.
23503 외부 키에 대해 삽입 또는 갱신 값이 유효하지 않습니다.
23504 상위 키의 갱신 또는 삭제는 NO ACTION 갱신 또는 삭제 규칙에 의해 금지됩니다.
23505 고유 인덱스 또는 고유 제한조건에 의해 부여된 제한조건의 위반이 발생했습니다.
23510 RLST 테이블에 의해 부과된 명령 사용시 제한조건의 위반이 발생했습니다.
23511 점검 제한조건이 삭제를 제한하므로 상위 행을 삭제할 수 없습니다.
23512 테이블에 제한조건 정의를 충족시키지 않는 행이 들어 있으므로 점검 제한조건을 추가할 수 없습니다.
23513 INSERT 또는 UPDATE의 결과 행이 점검 제한조건 정의를 준수하지 않습니다.
23514 데이터 점검 처리 중 제한조건 위반이 발견되었습니다.
23515 테이블에 지정한 키에 대해 중복된 값이 들어 있으므로, 고유 인덱스를 작성하거나 고유 제한조건을 추가할 수 없습니다.
23520 모든 외부 키의 값이 상위 테이블의 상위 키와 동일하지 않으므로, 외부 키를 정의할 수 없습니다.
23521 카탈로그 테이블의 갱신이 내부 제한조건을 위반합니다.
23522 식별 컬럼 또는 순서에 대한 값 범위가 모두 사용되었습니다.
23524 UNION ALL 뷰 내의 행 이동이 유효하지 않습니다.
23527 페더레이티드 데이터 원본에서 무결성 제한조건을 위반했습니다.

클래스 코드 24 유효하지 않은 커서 상태

표 17. 클래스 코드 24: 유효하지 않은 커서 상태
SQLSTATE 값  
의미
24501 식별된 커서는 열려 있지 않습니다.
24502 OPEN문에서 식별된 커서는 이미 열려 있습니다.
24504 UPDATE, DELETE, SET 또는 GET문에서 식별된 커서가 행에 위치하지 않습니다.
24506 PREPARE에서 식별된 명령문은 열린 커서의 명령문입니다.
24510 삭제 홀(hole) 또는 갱신 홀(hole)에 대해 UPDATE 또는 DELETE 조작이 시도되었습니다.
24512 결과 테이블이 기본 테이블과 일치하지 않습니다.
24513 커서 위치를 알 수 없으므로 FETCH NEXT, PRIOR, CURRENT 또는 RELATIVE가 허용되지 않습니다.
24514 이전 오류가 이 커서를 작동 불가능화하게 했습니다.
24516 커서가 이미 결과 세트에 지정되었습니다.
24517 외부 함수 또는 메소드에 의해 커서가 열린 상태로 있습니다.

클래스 코드 25 유효하지 않은 트랜잭션 상태

표 18. 클래스 코드 25: 유효하지 않은 트랜잭션 상태
SQLSTATE 값  
의미
25000 삽입, 갱신 또는 삭제 조작은 지정된 컨텍스트에서 유효하지 않습니다.
25001 이 명령문은 작업 단위(UOW)에서 첫 번째 명령문으로만 허용됩니다.
25501 이 명령문은 작업 단위(UOW)에서 첫 번째 명령문으로만 허용됩니다.
25502 단일 트랜잭션에 조작이 여러 번 발생할 수 없습니다.

클래스 코드 26 유효하지 않은 SQL문 ID

표 19. 클래스 코드 26: 유효하지 않은 SQL문 ID
SQLSTATE 값  
의미
26501 식별된 명령문이 존재하지 않습니다.

클래스 코드 27 트리거 데이터 변경 위반

표 20. 클래스 코드 27: 트리거 데이터 변경 위반
SQLSTATE 값   의미
27000 제한조건 또는 트리거에 의해 MERGE문의 목표 테이블을 수정하려고 했습니다.

클래스 코드 28 유효하지 않은 권한 부여 스펙

표 21. 클래스 코드 28: 유효하지 않은 권한 부여 스펙
SQLSTATE 값  
의미
28000 권한 부여 이름이 유효하지 않습니다.

클래스 코드 2D 유효하지 않은 트랜잭션 종료

표 22. 클래스 코드 2D: 유효하지 않은 트랜잭션 종료
SQLSTATE 값  
의미
2D521 SQL COMMIT 또는 ROLLBACK이 현재 운영 환경에서는 유효하지 않습니다.
2D522 ATOMIC 복합 명령문에서는 COMMIT 및 ROLLBACK이 허용되지 않습니다.
2D528 동적 COMMIT가 응용프로그램 실행 환경에 유효하지 않습니다.
2D529 동적 ROLLBACK이 응용프로그램 실행 환경에 유효하지 않습니다.

클래스 코드 2E 유효하지 않은 연결 이름

표 23. 클래스 코드 2E: 유효하지 않은 연결 이름
SQLSTATE 값  
의미
2E000 연결 이름이 유효하지 않습니다.

클래스 코드 34 유효하지 않은 커서 이름

표 24. 클래스 코드 34: 유효하지 않은 커서 이름
SQLSTATE 값  
의미
34000 커서 이름이 유효하지 않습니다.

클래스 코드 36 유효하지 않은 커서 스펙

표 25. 클래스 코드 36: 유효하지 않은 커서 스펙
SQLSTATE 값  
의미
36001 SENSITIVE 커서는 지정된 SELECT문에 대해 정의할 수 없습니다.

클래스 코드 38 외부 함수 예외

표 26. 클래스 코드 38: 외부 함수 예외
SQLSTATE 값  
의미
38XXX 외부 루틴 또는 트리거에 의해 유효한 오류 SQLSTATE가 리턴되었습니다.
38001 SQL문 실행에 외부 루틴은 허용되지 않습니다.
38002 루틴이 데이터를 수정하려 했으나, 이 루틴은 MODIFIES SQL DATA로 정의되지 않았습니다.
38003 명령문이 루틴에서 허용되지 않습니다.
38004 루틴이 데이터를 읽으려 했으나, 이 루틴은 READS SQL DATA로 정의되지 않았습니다.
38501 사용자 정의 함수(UDF), 외부 프로시저 또는 트리거를 호출(SIMPLE CALL 또는 SIMPLE CALL WITH NULLS 호출 규약 사용)하는 동안 오류가 발생했습니다.
38502 SQL문 실행에 외부 함수는 허용되지 않습니다.
38503 사용자 정의 함수(UDF)가 이상 종료되었습니다.
38504 사용자가 가능한 루핑 상태를 중지하려고 사용자 정의 함수(UDF)를 인터럽트했습니다.
38505 루틴의 FINAL CALL에서 SQL문이 허용되지 않습니다.
38506 함수가 OLE DB Provider로부터의 오류로 실패했습니다.
38552 SYSFUN 스키마의 함수(IBM 제공)가 비정상적으로 종료했습니다.

다음과 같은 이유 코드 중 하나가 메시지 텍스트에 나타날 수 있습니다.

01
숫자 값이 범위를 벗어남
02
0으로 나눔
03
산술 오버플로우 또는 언더플로우
04
유효하지 않은 날짜 형식
05
유효하지 않은 시간 형식
06
유효하지 않은 시간소인 형식
07
유효하지 않은 시간소인 지속 시간 문자 표현
08
유효하지 않은 간격 유형(1, 2, 4, 8, 16, 32, 64, 128, 256 중 하나여야 함)
09
문자열이 너무 김
10
문자열 함수의 길이나 위치가 범위를 벗어남
11
유효하지 않은 부동 소수점 숫자의 문자 표현
38553 시스템 스키마의 루틴이 오류로 종료되었습니다.
38H01 MQSeries 함수가 초기화하는 데 실패했습니다.
38H02 MQSeries Application Messaging Interface가 세션을 종료하는 데 실패했습니다.
38H03 MQSeries Application Messaging Interface가 메시지를 적절히 처리하지 못했습니다.
38H04 MQSeries Application Messaging Interface가 메시지를 보내는 데 실패했습니다.
38H05 MQSeries Application Messaging Interface가 메시지 읽기 및 받기에 실패했습니다.
38H06 MQSeries Application Messaging Interface (비)서브스크립션 요청에 실패했습니다.
38H07 MQSeries Application Messageing Inteface가 작업 단위(UOW)를 커미트하는 데 실패했습니다.
38H08 MQSeries Application Messaging Interface 규정 오류.
38H09 MQSeries XA (2단계 커미트) API 호출 오류.
38H0A MQSeries Application Messaging Interface가 작업 단위(UOW)를 롤백하는 데 실패했습니다.

클래스 코드 39 외부 함수 호출 예외

표 27. 클래스 코드 39: 외부 함수 호출 예외
SQLSTATE 값  
의미
39001 사용자 정의 함수(UDF)가 유효하지 않은 SQLSTATE를 리턴했습니다.
39004 IN 또는 INOUT 인수에는 널(NULL) 값이 허용되지 않습니다.
39501 인수와 연관된 구조 식별자(eye-catcher)가 수정되었습니다.

클래스 코드 3B 유효하지 않은 SAVEPOINT

표 28. 클래스 코드 3B: 유효하지 않은 SAVEPOINT
SQLSTATE 값  
의미
3B001 세이브포인트가 유효하지 않습니다.
3B002 최대 세이브포인트 수에 도달했습니다.
3B501 중복된 세이브포인트 이름이 발견되었습니다.
3B502 RELEASE 또는 ROLLBACK TO SAVEPOINT가 지정되었으나 세이브포인트가 존재하지 않습니다.
3B503 트리거 또는 전역 트랜잭션에서는 SAVEPOINT, RELEASE SAVEPOINT 또는 ROLLBACK TO SAVEPOINT가 허용되지 않습니다.

클래스 코드 40 트랜잭션 롤백

표 29. 클래스 코드 40: 트랜잭션 롤백
SQLSTATE 값  
의미
40001 자동 롤백되는 교착 상태나 시간종료가 발생했습니다.
40003 명령문 완료를 알 수 없습니다.
40504 시스템 오류로 인해 작업 단위가 롤백되었습니다.
40506 SQL 오류로 인해 현재 트랜잭션이 롤백되었습니다.
40507 인덱스 작성의 실패로 현재 트랜잭션이 롤백되었습니다.

클래스 코드 42 구문 오류 또는 액세스 규칙 위반

표 30. 클래스 코드 42: 구문 오류 또는 액세스 규칙 위반
SQLSTATE 값  
의미
42501 권한 부여 ID에는 식별된 오브젝트에 대해 지정한 조작을 실행할 수 있는 특권이 없습니다.
42502 권한 부여 ID에는 지정된 대로 조작을 수행할 수 있는 특권이 없습니다.
42504 지정한 특권을 지정된 권한 부여 이름에서 취소할 수 없습니다.
42506 소유자 권한 부여에 실패했습니다.
42508 지정한 데이터베이스 특권을 PUBLIC으로 부여할 수 없습니다.
42509 STATICRULES 옵션으로 인해 SQL 문에는 권한이 부여되지 않았습니다.
42511 DATALINK 값을 검색할 수 없습니다.
42601 문자, 토큰 또는 절이 유효하지 않거나 누락되었습니다.
42602 이름에서 유효하지 않은 문자가 발견되었습니다.
42603 종료되지 않은 문자열 상수가 발견되었습니다.
42604 유효하지 않은 숫자나 문자열 상수가 발견되었습니다.
42605 스칼라 함수에 대해 지정된 인수의 수가 유효하지 않습니다.
42606 유효하지 않은 16진수 상수가 발견되었습니다.
42607 컬럼 함수의 피연산자가 유효하지 않습니다.
42608 VALUES에서의 NULL 또는 DEFAULT 사용이 유효하지 않습니다.
42609 연산자나 술어의 모든 피연산자가 매개변수 표시문자입니다.
42610 매개변수 표시문자가 허용되지 않습니다.
42611 컬럼 또는 인수 정의가 유효하지 않습니다.
42612 명령문 문자열이, 제시되는 컨텍스트에서 허용되지 않는 SQL문입니다.
42613 절이 상호 배제적(exclusive)입니다.
42614 중복된 키워드는 유효하지 않습니다.
42615 유효하지 않은 다른 방법이 발견되었습니다.
42616 유효하지 않은 옵션이 지정되었습니다.
42617 명령문 문자열이 공백이거나 비어 있습니다.
42618 호스트 변수가 허용되지 않습니다.
42620 읽기 전용 SCROLL이 UPDATE절에 대해 지정되었습니다.
42621 점검 제한조건이 유효하지 않습니다.
42622 이름이나 레이블이 너무 깁니다.
42623 DEFAULT절을 지정할 수 없습니다.
42625 CASE 표현식이 유효하지 않습니다.
42627 RETURNS절은 EXPRESSION AS절을 사용하는 술어 스펙 앞에 지정되어야 합니다.
42628 TO SQL 또는 FROM SQL 트랜잭션 함수가 변환 정의에 두 번 이상 정의되었습니다.
42629 SQL 루틴에는 매개변수 이름이 지정되어야 합니다.
42630 SQLSTATE 또는 SQLCODE 변수 선언이 중첩된 복합 명령문 내에 있어서는 안됩니다.
42631 SQL 함수 또는 메소드에 있는 RETURN문은 리턴 값을 포함해야 합니다.
42634 XML 이름이 유효하지 않습니다.
42635 XML 이름 스페이스 접두부가 유효하지 않습니다.
42701 삽입, 갱신 조작 또는 SET 전이 변수 명령문에서 중복된 컬럼 이름이 발견되었습니다.
42702 중복된 이름으로 인해 컬럼 참조가 명확하지 않습니다.
42703 정의되지 않은 컬럼, 속성 또는 매개변수 이름이 발견되었습니다.
42704 정의되지 않은 오브젝트 이름이나 제한조건 이름이 발견되었습니다.
42705 정의되지 않은 서버 이름이 발견되었습니다.
42707 ORDER BY내의 컬럼 이름이 결과 테이블의 컬럼을 식별하지 않습니다.
42709 PRIMARY, UNIQUE 또는 FOREIGN KEY절에서 중복된 컬럼 이름이 발견되었습니다.
42710 중복된 오브젝트 이름 또는 제한조건 이름이 발견되었습니다.
42711 중복된 컬럼 이름이나 속성 이름이 오브젝트 정의 또는 ALTER문에서 발견되었습니다.
42712 FROM절에서 중복된 테이블 지정자가 발견되었습니다.
42713 오브젝트 목록에 중복되는 오브젝트가 발견되었습니다.
42720 리모트 데이터베이스에 대한 노드 이름이 노드 디렉토리에 없습니다.
42723 동일한 시그니처를 갖는 함수가 스키마에 이미 있습니다.
42724 사용자 정의 함수(UDF) 또는 프로시저에 사용되는 외부 프로그램에 액세스할 수 없습니다.
42725 함수 또는 메소드가 직접 참조되었지만(시그니처 또는 특정 인스턴스 이름에 의해서가 아님), 해당 함수의 특정 인스턴스가 둘 이상 있습니다.
42726 이름 지정된 파생된 테이블(derived table)에 대해 중복된 이름이 발견되었습니다.
42727 새로운 테이블에 기본 디폴트 테이블 스페이스가 없습니다.
42728 노드 그룹 정의에서 중복된 노드가 발견되었습니다.
42729 노드가 정의되어 있지 않습니다.
42730 컨테이너 이름이 이미 다른 테이블 스페이스에서 사용되고 있습니다.
42731 컨테이너 이름이 이미 이 테이블 스페이스에서 사용되고 있습니다.
42732 SET CURRENT PATH문에서 중복된 스키마 이름이 발견되었습니다.
42734 중복된 매개변수 이름, SQL 변수 이름, 커서 이름, 조건 이름 또는 레이블이 발견되었습니다.
42735 테이블 스페이스를 위한 노드 그룹이 버퍼 풀에 대해 정의되어 있지 않습니다.
42736 LEAVE문에 지정된 레이블이 없거나 유효하지 않습니다.
42737 핸들러에 지정된 조건이 정의되어 있지 않습니다.
42738 중복된 컬럼 이름 또는 이름이 지정되지 않은 컬럼이 FOR문의 DECLARE CURSOR문에 지정되었습니다.
42739 중복된 변환이 발견되었습니다.
42740 지정된 유형에 대한 변환이 없습니다. 변환이 삭제되지 않았습니다.
42741 데이터 유형에 대한 변환 그룹이 정의되어 있지 않습니다.
42742 유형이 지정된 테이블 또는 유형이 지정된 뷰 계층 구조에 같은 유형의 서브테이블이나 서브뷰가 이미 있습니다.
42743 검색 메소드가 인덱스 확장에 없습니다.
42744 변환 그룹에 TO SQL 또는 FROM SQL 변환 함수가 정의되어 있지 않습니다.
42745 루틴이 기존의 메소드를 사용하여 중첩 관계를 정의합니다.
42746 메소드 이름은 같은 유형 계층 구조 내의 구조화된 유형 이름과 같을 수 없습니다.
42748 스토리지 경로가 데이터베이스에 대해 이미 존재하거나 두 번 이상 지정되었습니다.
42802 삽입 값 또는 갱신 값의 수가 컬럼의 수와 동일하지 않습니다.
42803 SELECT 또는 HAVING절의 컬럼 참조는 컬럼이 그룹화 컬럼이 아니므로, 유효하지 않습니다. 또는 GROUP BY절의 컬럼 참조가 유효하지 않습니다.
42804 CASE 표현식의 결과 표현식이 호환 가능하지 않습니다.
42805 ORDER BY절의 정수는 결과 테이블의 컬럼을 식별하지 않습니다.
42806 데이터 유형이 호환 가능하지 않으므로, 호스트 변수에 값을 지정할 수 없습니다.
42807 이 오브젝트에 대해서는 INSERT, UPDATE 또는 DELETE가 허용되지 않습니다.
42808 삽입 또는 갱신 조작에서 식별된 컬럼은 갱신 불가능합니다.
42809 식별된 오브젝트는 명령문이 적용되는 오브젝트의 유형이 아닙니다.
42810 기본 테이블이 FOREIGN KEY절에서 식별되지 않습니다.
42811 지정한 컬럼 수가 SELECT절의 컬럼 수와 동일하지 않습니다.
42813 WITH CHECK OPTION을 지정한 뷰에 사용할 수 없습니다.
42815 데이터 유형, 길이, 스케일, 값 또는 CCSID가 유효하지 않습니다.
42816 표현식의 날짜 시간 값 또는 지속기간이 유효하지 않습니다.
42818 연산자 또는 함수의 피연산자가 호환되지 않습니다.
42819 산술 연산의 피연산자 또는 숫자를 요구하는 함수의 피연산자가 숫자가 아닙니다.
42820 숫자 상수가 너무 길거나, 그 값이 해당 데이터 유형의 범위 내에 있지 않습니다.
42821 갱신 또는 삽입 값이 컬럼과 호환되지 않습니다.
42823 하나의 컬럼만 허용되는 서브쿼리로부터 여러 컬럼이 리턴되었습니다.
42824 LIKE의 피연산자가 문자열이 아니거나 첫 번째 피연산자가 컬럼이 아닙니다.
42825 UNION, INTERSECT, EXCEPT 또는 VALUES의 행에 호환되는 컬럼이 없습니다.
42826 UNION, INTERSECT, EXCEPT 또는 VALUES의 행에서 컬럼 수가 동일하지 않습니다.
42827 UPDATE 또는 DELETE에서 식별된 테이블이 커서에 의해 지정된 동일한 테이블이 아닙니다.
42828 UPDATE 또는 DELETE문의 커서에 의해 지정된 테이블을 수정할 수 없거나, 커서가 읽기 전용입니다.
42829 커서에 의해 지정된 결과 테이블을 수정할 수 없으므로 FOR UPDATE OF는 유효하지 않습니다.
42830 외부 키가 상위 키의 설명을 따르지 않습니다.
42831 기본 키 또는 고유 키의 컬럼에 널(NULL) 값이 허용되지 않습니다.
42832 조작이 시스템 오브젝트에 대해 허용되지 않습니다.
42834 외부 키의 컬럼에 널(NULL) 값을 지정할 수 없으므로 SET NULL을 지정할 수 없습니다.
42835 이름 지정된 파생된 테이블(derived table) 간에 순환 참조를 지정할 수 없습니다.
42836 반복적인 이름 지정된 파생된 테이블(derived table)의 스펙이 유효하지 않습니다.
42837 컬럼의 속성이 현재 컬럼 속성과 호환되지 않으므로, 컬럼을 변경할 수 없습니다.
42838 테이블 스페이스의 유효하지 않은 사용이 발견되었습니다.
42839 인덱스 및 긴 컬럼을 해당 테이블과 별도의 테이블 스페이스에 둘 수 없습니다.
42840 AS CAST 옵션의 유효하지 않은 사용이 발견되었습니다.
42841 매개변수 표시문자는 사용자 정의 유형 또는 참조 유형이 될 수 없습니다.
42842 지정한 옵션이 컬럼 설명과 일치하지 않으므로, 컬럼 정의가 유효하지 않습니다.
42845 VARIANT 또는 EXTERNAL ACTION 함수의 유효하지 않은 사용이 발견되었습니다.
42846 소스 유형에서 목표 유형으로의 캐스트가 지원되지 않습니다.
42852 GRANT 또는 REVOKE에 지정된 특권이 유효하지 않거나 일관성이 없습니다(예: 뷰에 대한 GRANT ALTER).
42853 두 가지 방법의 옵션이 지정되었거나 같은 옵션이 두 번 이상 지정되었습니다.
42854 선택 목록의 결과 컬럼 데이터 유형이 유형이 지정된 뷰나 구체화된 쿼리 테이블 정의에 정의된 유형과 호환되지 않습니다.
42855 이 호스트 변수에 대한 LOB의 지정이 허용되지 않습니다. 이 커서의 이 LOB 값에 대한 모든 페치의 목표 호스트 변수는 로케이터이거나 LOB 변수여야 합니다.
42858 조작을 지정된 오브젝트에 적용할 수 없습니다.
42863 REXX에서 정의되지 않은 호스트 변수가 발견되었습니다.
42866 CREATE FUNCTION문 내 CAST FROM절의 RETURNS절에 있는 데이터 유형이 함수 내용에 있는 전래 함수나 RESTURN문에 의해 리턴된 데이터 유형에 적합하지 않습니다.
42867 충돌하는 옵션이 지정되었습니다.
42872 FETCH문 절이 커서 정의와 호환되지 않습니다.
42875 CREATE SCHEMA 내에서 작성할 오브젝트의 규정자가 스키마 이름과 동일해야 합니다.
42877 컬럼 이름을 규정할 수 없습니다.
42878 유효하지 않은 함수 또는 프로시저 이름이 EXTERNAL 키워드에 사용되었습니다.
42879 CREATE FUNCTION문에 있는 하나 이상의 입력 매개변수의 데이터 유형이 소스 함수의 해당 데이터 유형에 적합하지 않습니다.
42880 CAST TO와 CAST FROM 데이터 유형이 호환되지 않거나, 항상 고정 문자열이 절단되게 합니다.
42881 행 기본 함수의 사용이 잘못되었습니다.
42882 특정 인스턴스 이름 규정자가 함수 이름 규정자와 동일하지 않습니다.
42883 시그니처가 일치하는 함수 또는 메소드가 없습니다.
42884 지정된 이름과 호환되는 인수를 갖는 루틴이 없습니다.
42885 CREATE FUNCTION문에 지정된 입력 매개변수 수가 SOURCE절에 이름 지정된 함수에서 제공하는 수와 일치하지 않습니다.
42886 IN, OUT 또는 INOUT 매개변수 속성이 일치하지 않습니다.
42887 함수가 발생한 컨텍스트에서 유효하지 않습니다.
42888 테이블에 기본 키가 없습니다.
42889 테이블에 기본 키가 이미 있습니다.
42890 컬럼 목록이 참조 절에 지정되었으나, 식별된 상위 테이블에 지정된 컬럼 이름을 갖는 고유 제한조건이 없습니다.
42891 중복된 UNIQUE 제한조건이 이미 있습니다.
42893 다른 오브젝트가 종속되어 있기 때문에, 오브젝트 또는 제한조건을 삭제할 수 없습니다.
42894 DEFAULT 값이 유효하지 않습니다.
42895 정적 SQL의 경우, 입력 호스트 변수의 데이터 유형이 프로시저 또는 사용자 정의 함수(UDF)의 매개변수와 호환 불가능하므로, 해당 입력 호스트 변수를 사용할 수 없습니다.
428A0 사용자 정의 함수(UDF)의 기본이 되는 전래 함수(sourced function)에 오류가 발생했습니다.
428A1 호스트 파일 변수가 참조하는 파일에 액세스할 수 없습니다.
428A2 테이블에 파티션 키가 없으므로 테이블을 다중 노드로 구성된 노드 그룹에 지정할 수 없습니다.
428A3 이벤트 모니터에 유효하지 않은 경로가 지정되었습니다.
428A4 이벤트 모니터 옵션에 유효하지 않은 값이 지정되었습니다.
428A5 SET INTEGRITY문에 이름 지정된 예외 테이블이 적당한 구조로 되어 있지 않거나, 생성된 컬럼, 제한조건 또는 트리거와 함께 정의되었습니다.
428A6 SET INTEGRITY문에 이름 지정된 예외 테이블은 점검될 테이블 중 어느 것과도 같아서는 안됩니다.
428A7 점검 중인 테이블의 수와 SET INTEGRITY문에 지정된 예외 테이블의 수가 일치하지 않습니다.
428A8 상위 테이블이 점검 보류(check-pending) 상태에 있는 동안에는 하위 테이블에 SET INTEGRITY문을 사용하여 점검 보류 상태를 재설정할 수 없습니다.
428A9 노드 범위가 유효하지 않습니다.
428AA 컬럼 이름이 이벤트 모니터 테이블에 유효한 컬럼이 아닙니다.
428B0 ROLLUP, CUBE 또는 GROUPING SETS 내에 잘못된 중첩(nesting)이 있습니다.
428B1 특정 노드에 대해 지정되지 않은 테이블 스페이스 컨테이너 스펙의 수가 올바르지 않습니다.
428B2 컨테이너에 대한 경로 이름이 유효하지 않습니다.
428B3 유효하지 않은 SQLSTATE가 지정되었습니다.
428B7 SQL문에 지정된 번호가 유효한 범위를 벗어납니다.
428BO 페더레이티드 데이터 소스에 대한 플랜이 작성 가능하지 않습니다.
428C0 노드 그룹의 유일한 노드이므로 노드를 삭제할 수 없습니다.
428C1 하나의 ROWID 컬럼만이 테이블에 대해 지정될 수 있습니다.
428C2 함수 내용의 검사는 제공된 절이 CREATE FUNCTION문에서 지정되어야 함을 나타냅니다.
428C4 술어 연산자의 양쪽에 있는 요소의 수가 동일하지 않습니다.
428C5 데이터 소스로부터 데이터 유형에 대한 데이터 유형 맵핑을 찾을 수 없습니다.
428C9 ROWID 컬럼은 INSERT 또는 UPDATE의 목표 컬럼으로서 지정될 수 없습니다.
428CA 추가 모드에 있는 테이블에는 클러스터된 인덱스가 있을 수 없습니다.
428CB 테이블 스페이스의 페이지 크기는 연관된 버퍼 풀의 페이지 크기와 일치해야 합니다.
428D1 DATALINK 값이 참조하는 파일에 액세스할 수 없습니다.
428D4 FOR문에 지정된 커서는 OPEN, CLOSE 또는 FETCH문에서 참조될 수 없습니다.
428D5 끝 레이블이 시작 레이블과 일치하지 않습니다.
428D6 UNDO는 NOT ATOMIC문에는 허용되지 않습니다.
428D7 조건 값이 허용되지 않습니다.
428D8 SQLSTATE 또는 SQLCODE 변수의 선언 또는 사용이 유효하지 않습니다.
428DB 오브젝트가 슈퍼 유형, 슈퍼 테이블 또는 슈퍼 뷰로 유효하지 않습니다.
428DC 함수 또는 메소드가 이 유형에 대한 변환으로 유효하지 않습니다.
428DD 필수 변환이 정의되지 않았습니다.
428DE PAGESIZE 값은 지원되지 않습니다.
428DF CREATE CAST에서 지정된 데이터 유형이 유효하지 않습니다.
428DG CREATE CAST에서 지정된 함수가 유효하지 않습니다.
428DH 유형 지정된 테이블에 대해 조작이 유효하지 않습니다.
428DJ 상속된 컬럼 또는 속성은 변경하거나 삭제할 수 없습니다.
428DK 참조 컬럼의 범위(scope)가 이미 정의되었습니다.
428DL 외부 또는 전래 함수의 매개변수의 범위(scope)가 정의되었습니다.
428DM 범위 테이블이나 뷰가 참조 유형에 유효하지 않습니다.
428DN SCOPE가 외부 함수의 RETURNS절에 지정되지 않았거나 전래 함수의 RETURNS절에 지정되었습니다.
428DP 유형이 구조화된 유형이 아닙니다.
428DQ 서브테이블이나 서브뷰는 슈퍼 테이블이나 슈퍼 뷰와 다른 스키마 이름을 가질 수 없습니다.
428DR 조작은 서브테이블에 적용될 수 없습니다.
428DS 지정된 컬럼의 인덱스가 서브테이블에서 정의될 수 없습니다.
428DT 표현식의 피연산자가 유효한, 범위 지정된 참조 유형이 아닙니다.
428DU 유형이 필수 유형 계층 구조에 포함되지 않습니다.
428DV 비참조 연산자의 왼쪽 피연산자가 유효하지 않습니다.
428DW 오브젝트 ID 컬럼은 비참조 연산자를 사용하여 참조될 수 없습니다.
428DX 유형이 지정된 테이블이나 유형이 지정된 뷰 계층 구조의 루트 테이블이나 루트 뷰를 정의하는 데 오브젝트 ID 컬럼이 필요합니다.
428DY 목표 오브젝트 유형에 대한 통계를 갱신할 수 없습니다.
428DZ 오브젝트 ID 컬럼을 갱신할 수 없습니다.
428E0 인덱스 정의가 인덱스 확장의 정의와 일치하지 않습니다.
428E1 범위 생성 테이블 함수의 결과가 인덱스 확장에 대한 키 변환 테이블 함수와 일치하지 않습니다.
428E2 키 목표 매개변수의 숫자나 유형이 인덱스 확장에 대한 키 변환 함수의 숫자나 유형과 일치하지 않습니다.
428E3 인덱스 확장에서 함수에 대한 인수가 유효하지 않습니다.
428E4 함수는 CREATE INDEX EXTENSION문에서 지원되지 않습니다.
428E5 SELECTIVITY절은 사용자 정의 술어를 사용해서만 지정될 수 있습니다.
428E6 사용자 정의 술어에 있는 메소드의 검색 인수가 인덱스 확장의 해당 검색 메소드의 인수와 일치하지 않습니다.
428E7 사용자 정의 술어에서 비교 연산자 다음에 오는 피연산자 유형이 RETURNS 데이터 유형과 일치하지 않습니다.
428E8 검색 목표 또는 검색 인수 매개변수가 작성되는 함수의 매개변수 이름과 일치하지 않습니다.
428E9 인수 매개변수 이름은 같은 작성 규칙에서 검색 목표와 검색 인수로 모두 나타날 수 없습니다.
428EA 유형이 지정된 뷰에서 fullselect가 유효하지 않습니다.
428EB 서브뷰의 컬럼은 슈퍼 뷰의 해당 컬럼이 갱신 가능할 때만 읽을 수 없습니다.
428EC 구체화된 쿼리 테이블에 대해 지정된 fullselect가 유효하지 않습니다.
428ED 데이터 링크 또는 참조 유형 속성의 구조화된 유형을 구성할 수 없습니다.
428EE 옵션이 이 데이터 소스에 유효하지 않습니다.
428EF 옵션 값이 이 데이터 소스에 유효하지 않습니다.
428EG 이 데이터 소스에 대한 필수 옵션이 누락되었습니다.
428EH 이미 정의되어 있는 옵션을 추가할 수 없습니다.
428EJ 추가되지 않은 옵션을 설정 또는 삭제할 수 없습니다.
428EK 선언된 전역 임시 테이블 이름에 대한 규정자는 SESSION이어야 합니다.
428EL 변환 함수는 함수 또는 메소드와 함께 사용할 수 없습니다.
428EM TRANSFORM GROUP절이 필요합니다.
428EN 사용되지 않은 변환 그룹이 지정되었습니다.
428EP 구조화된 유형은 직접적이든 간접적이든 자신에게 종속될 수 없습니다.
428EQ 루틴의 리턴 유형이 주제 유형과 동일하지 않습니다.
428ER 메소드 본문을 제거하기 전에 메소드 스펙을 제거할 수 없습니다.
428ES 메소드 본문이 메소드 스펙의 언어 유형에 해당하지 않습니다.
428EU TYPE 또는 VERSION이 서버 정의에 지정되어 있지 않습니다.
428EV 데이터 소스 유형에는 pass-through 기능이 지원되지 않습니다.
428EW 테이블을 요약 테이블로 또는 구체화된 쿼리 테이블을 테이블로 변환할 수 없습니다.
428EX 루틴이 내장 함수 또는 메소드이기 때문에 변환 함수로 사용될 수 없습니다.
428EY 사용자 정의 술어에 있는 검색 목표의 데이터 유형이 지정된 인덱스 확장의 소스 키에 대한 데이터 유형과 일치하지 않습니다.
428EZ OLAP 함수의 창 스펙이 유효하지 않습니다.
428F0 ROW 함수는 컬럼을 두 개 이상을 포함해야 합니다.
428F1 SQL TABLE 함수는 테이블 결과를 리턴해야 합니다.
428F2 SQL 프로시저에서 RETURN문 값의 데이터 유형은 INTEGER여야 합니다.
428F3 SCROLL과 WITH RETURN은 함께 사용할 수 없습니다.
428F4 FETCH문에 지정된 SENSITIVITY는 이 커서에 사용할 수 없습니다.
428F6 커서가 화면 이동 커서이지만, 결과 테이블에 테이블 함수의 출력이 포함됩니다.
428F7 SQL 루틴에만 적용하는 조작이 외부 루틴에서 시도되었습니다.
428F9 이 컨텍스트에서는 시퀀스 표현식을 지정할 수 없습니다.
428FA 10진수의 스케일은 0이어야 합니다.
428FB sequence-name은 식별 컬럼용으로 시스템이 생성한 시퀀스여서는 안됩니다.
428FC ENCRYPTION PASSWORD의 길이가 유효하지 않습니다.
428FD 암호 해독에 사용된 암호가 데이터를 암호화할 때 사용된 암호와 일치하지 않습니다.
428FE 이 데이터는 ENCRYPT 함수의 결과가 아닙니다.
428FF 버퍼 풀 스펙이 유효하지 않습니다.
428FG 스테이징 테이블을 정의하는 데 사용된 테이블이 유효하지 않습니다.
428FH SET INTEGRITY 옵션이 유효하지 않습니다.
428FI ORDER OF가 지정되었으나, 테이블 지정자에 ORDER BY절이 없습니다.
428FJ 뷰 또는 구체화된 쿼리 테이블의 외부 fullselect에서는 ORDER BY가 허용되지 않습니다.
428FL SQL 데이터 변경 명령문이 지정된 컨텍스트에서 허용되지 않습니다.
428FM SELECT 내의 INSERT문에 대칭 뷰가 아닌 뷰가 지정되었습니다.
428FP 주제 뷰에서 각 조작에 대해 하나의 INSTEAD OF 트리거가 허용됩니다.
428FQ INSTEAD OF 트리거는 WITH CHECK OPTION을 사용하여 정의된 뷰, WITH CHECK OPTION이 정의된 다른 뷰에 정의된 뷰 또는 WITH ROW MOVEMENT절을 사용하여 정의된 뷰에 중첩된 뷰를 지정해서는 안됩니다.
428FU FROM SQL 변환 함수 또는 메소드로부터 리턴된 내장 유형이 TO SQL 변환 함수 또는 메소드의 해당하는 내장 유형과 일치하지 않습니다.
428FV 메소드를 중첩 메소드로 정의할 수 없습니다.
428FZ 일부 조작에 대해서만 정의된 INSTEAD OF 트리거가 있는 뷰는 MERGE문에서 목표로 사용할 수 없습니다.
428G3 fullselect에서 SQL 데이터 변경 명령문의 목표 뷰에 INSTEAD OF 트리거가 정의되어 있는 경우 최종 테이블은 유효하지 않습니다.
428G4 INPUT SEQUENCE 순서가 잘못 사용되었습니다.
428G5 UPDATE문의 지정 절은 INCLUDE 컬럼이 아닌 컬럼을 최소한 하나 이상 지정해야 합니다.
428G6 fullselect의 FROM절에서 데이터 변경 명령문의 목표로부터 선택할 수 없는 컬럼이 지정되었습니다.
428G8 뷰를 쿼리 최적화에 사용할 수 없습니다.
428GA 페더레이티드 옵션은 추가, 삭제 또는 변경될 수 없습니다.
42901 컬럼 함수에 컬럼 이름이 포함되어 있지 않습니다.
42903 WHERE절이나 SET절에 컬럼 함수와 같은 유효하지 않은 참조가 들어 있습니다.
42904 컴파일 오류로 인해 SQL 프로시저를 작성할 수 없습니다.
42907 문자열이 너무 깁니다.
42908 명령문에 필요한 컬럼 목록이 포함되어 있지 않습니다.
42910 명령문이 복합 명령문에서 허용되지 않습니다.
42911 10진수 나눗셈 조작의 결과로 스케일이 음수가 되므로, 10진수 나눗셈 조작은 유효하지 않습니다.
42912 컬럼이 커서의 SELECT문의 UPDATE절에서 식별되지 않으므로, 이 컬럼을 갱신할 수 없습니다.
42914 서브쿼리에서 참조되는 테이블이 조작에 의해 영향을 받을 수 있으므로, DELETE가 유효하지 않습니다.
42915 유효하지 않은 참조 제한조건이 발견되었습니다.
42916 별명을 작성하면 별명이 반복적인 체인을 이루므로 별명을 작성할 수 없습니다.
42917 오브젝트를 명시적으로 삭제 또는 변환할 수 없습니다.
42918 사용자 정의 데이터 유형(UDT)을 시스템 정의 데이터 유형(예: INTEGER) 이름으로 작성할 수 없습니다.
42919 중첩된 복합 명령문은 허용되지 않습니다.
42921 테이블 스페이스에 컨테이너를 추가할 수 없습니다.
42925 반복적인 이름 지정된 파생된 테이블(derived table)은 SELECT DISTINCT를 지정할 수 없으며, UNION ALL을 지정해야 합니다.
42928 테이블에 대해 WITH EMPTY TABLE을 지정할 수 없습니다.
42932 프로그램 준비 가정(assumption)이 올바르지 않습니다.
42939 지정된 ID는 시스템에서 사용하기 위해 예약되어 있으므로, 이름을 사용할 수 없습니다.
42961 지정된 서버 이름이 현재 서버와 일치하지 않습니다.
42962 긴 컬럼, LOB 컬럼 또는 구조화된 유형은 인덱스, 키 또는 제한조건에서 사용될 수 없습니다.
42968 현재 소프트웨어 라이센스가 없기 때문에 연결에 실패했습니다.
42969 패키지가 작성되지 않았습니다.
42972 조인 조건 또는 MERGE문의 ON절에서 표현식은 둘 이상의 피연산자 테이블의 컬럼을 참조합니다.
42985 명령문이 루틴에서 허용되지 않습니다.
42987 명령문이 프로시저 또는 트리거에서 허용되지 않습니다.
42989 표현식을 기본으로 한 GENERATED 컬럼은 BEFORE 트리거에서는 사용될 수 없습니다.
42991 BOOLEAN 데이터 유형은 현재 내부적으로만 지원됩니다.
42993 컬럼이 정의될 때, 너무 길어서 로그할 수 없습니다.
42994 원시 디바이스(raw device) 컨테이너는 지원되지 않습니다.
42995 요청된 함수가 전역 임시 테이블에 적용되지 않습니다.
42997 기능이 이 버전의 DB2 응용프로그램 리퀘스터, DB2 응용프로그램 서버 또는 이 둘의 조합에서 지원하지 않습니다.
429A0 외부 키는 처음에 로그지 않으므로 정의된 상위 테이블을 참조할 수 없습니다.
429A1 노드 그룹이 테이블 스페이스에 유효하지 않습니다.
429A9 DataJoiner가 SQL문을 처리할 수 없습니다.
429B2 구조화된 유형 또는 컬럼에 지정된 인라인 길이 값이 너무 작습니다.
429B3 오브젝트가 서브테이블에서 정의되지 않을 수도 있습니다.
429B4 데이터 필터 함수는 LANGUAGE SQL 함수가 될 수 없습니다.
429B5 인덱스 확장에서 인스턴스 매개변수의 데이터 유형이 유효하지 않습니다.
429B8 PARAMETER STYLE JAVA에 정의된 루틴은 매개변수 또는 리턴 유형으로서 구조화된 유형을 가질 수 없습니다.
429B9 속성을 지정할 때 DEFAULT 또는 NULL을 사용할 수 없습니다.
429BA FEDERATED 키워드는 페더레이티드 데이터베이스 오브젝트에 대한 참조와 함께 사용되어야 합니다.
429BB 매개변수 또는 변수에 대해 지정된 데이터 유형이 SQL 루틴에서는 지원되지 않습니다.
429BC ALTER TABLESPACE문에 여러 개의 컨테이너 조치가 있습니다.
429BE 기본 키 또는 고유 키가 차원 절에서 컬럼의 서브세트입니다.
429BG 함수는 범위 클러스터 테이블에서 지원되지 않습니다.
429BJ 뷰에서 WITH ROW MOVEMENT가 잘못 사용되었습니다.
429BK 행 이동에 하위 뷰가 포함되므로 뷰 갱신 시도가 유효하지 않습니다.
429BL SQL 데이터를 수정하는 함수가 올바르지 않은 컨텍스트에서 호출되었습니다.
429BO 페더레이티드 데이터 소스에 대한 플랜이 작성 가능하지 않습니다.
429BP 별칭 계산 결과 컬럼이 유효하지 않습니다.

클래스 코드 44 WITH CHECK OPTION 위반

표 31. 클래스 코드 44: WITH CHECK OPTION 위반
SQLSTATE 값  
의미
44000 결과 행이 뷰 정의를 충족시키지 않으므로, 삽입이나 갱신 조작이 허용되지 않습니다.

클래스 코드 46 Java DDL

표 32. 클래스 코드 46: Java DDL
SQLSTATE 값  
의미
46001 Java DDL - 유효하지 않은 URL.
46002 Java DDL - 유효하지 않은 jar 이름.
46003 Java DDL - 유효하지 않은 클래스 삭제.
46007 Java DDL - 유효하지 않은 시그니처.
46008 Java DDL - 유효하지 않은 메소드 스펙.
46103 Java 루틴에 ClassNotFound 예외가 발생했습니다.
46501 Java DDL - 선택적 구성요소가 구현되지 않았습니다.

클래스 코드 51 유효하지 않은 응용프로그램 상태

표 33. 클래스 코드 51: 유효하지 않은 응용프로그램 상태
SQLSTATE 값  
의미
51002 SQL문 실행 요청에 해당되는 패키지가 없습니다.
51003 일관성 토큰이 일치하지 않습니다.
51004 SQLDA의 주소가 유효하지 않습니다.
51005 이전 시스템 오류로 인해 이 기능이 작동 불가능하게 되었습니다.
51008 프리컴파일된 프로그램의 릴리스 번호가 유효하지 않습니다.
51015 바인드 시 오류가 발견된 섹션을 실행하려고 했습니다.
51017 사용자가 로그온되지 않았습니다.
51021 응용프로그램 프로세스에서 롤백 작업을 처리할 때까지 SQL문을 실행할 수 없습니다.
51022 CONNECT문에 이름 지정된 서버로의 연결(현재 또는 비활동)이 이미 존재하면, 권한 부여 이름을 지정하는 CONNECT가 유효하지 않습니다.
51023 데이터베이스가 데이터베이스 관리 프로그램의 다른 인스턴스에서 이미 사용 중입니다.
51024 뷰가 작동 불능으로 표시되어, 이를 사용할 수 없습니다.
51025 XA 트랜잭션 처리 환경의 응용프로그램은 SYNCPOINT TWOPHASE로 바인드되지 않습니다.
51026 이벤트 모니터의 목표 경로를 이미 다른 이벤트 모니터에서 사용 중이므로, 이 이벤트 모니터를 작동시킬 수 없습니다.
51027 테이블이 사용자 유지보수 구체화된 쿼리 테이블이거나, 점검 보류 상태가 아니므로 SET INTEGRITY문의 IMMEDIATE CHECKED 옵션이 유효하지 않습니다.
51028 패키지가 작동 불능으로 표시되어 이를 사용할 수 없습니다.
51030 ALLOCATE CURSOR 또는 ASSOCIATE LOCATORS문에서 참조되는 프로시저가 응용프로그램 프로세스에서 호출되지 않았습니다.
51034 MODIFIES SQL DATA로 정의된 루틴이 이 루틴이 호출된 컨텍스트에서 유효하지 않습니다.
51035 이 세션에서 시퀀스에 대해 값이 생성되지 않았으므로 PREVVAL 표현식을 사용할 수 없습니다.
51038 루틴에서 더 이상 SQL문을 발행하지 못할 수 있습니다.
51039 ENCRYPTION PASSWORD 값이 설정되지 않았습니다.
51040 유효하지 않은 컴파일 환경.

클래스 코드 53 유효하지 않은 피연산자 또는 불일치 스펙

표 34. 클래스 코드 53: 유효하지 않은 피연산자 또는 불일치 스펙
SQLSTATE 값  
의미
53040 지정된 버퍼 풀이 지정된 데이터베이스 파티션에 존재하지 않습니다.
53090 하나의 코드화 체계(ASCII, EBCDIC 또는 유니코드)의 데이터만 같은 SQL문에서 참조될 수 있습니다.
53091 지정된 코드화 체계가 포함하는 오브젝트에 현재 사용 중인 코드화 체계와 동일하지 않습니다.

클래스 코드 54 SQL 또는 제품 한계가 초과됨

표 35. 클래스 코드 54: SQL 또는 제품 한계가 초과됨
SQLSTATE 값  
의미
54001 명령문이 너무 길거나 너무 복잡합니다.
54002 문자열 상수가 너무 깁니다.
54004 명령문에 테이블 이름이 너무 많거나 SELECT 또는 INSERT 목록에 항목이 너무 많습니다.
54006 병합의 결과가 너무 깁니다.
54008 키가 너무 길거나 키에 너무 많은 컬럼이 있거나 키 컬럼이 너무 깁니다.
54010 테이블의 레코드 길이가 너무 깁니다.
54011 테이블이나 뷰에 대해 컬럼이 너무 많이 지정되었습니다.
54023 함수 또는 프로시저에 대한 매개변수나 인수의 수에 대한 한계가 초과되었습니다.
54028 최대 동시 LOB 핸들 수에 도달했습니다.
54029 최대 열린 디렉토리 스캔 수에 도달했습니다.
54030 최대수의 이벤트 모니터가 이미 사용 중입니다.
54031 최대 파일 수가 이벤트 모니터에 이미 지정되었습니다.
54032 최대 테이블 크기에 도달했습니다.
54033 최대 파티션 맵의 수에 도달했습니다.
54034 테이블 스페이스에 대한 모든 컨테이너 이름의 길이 합계가 너무 깁니다.
54035 내부 오브젝트 한계를 초과했습니다.
54036 컨테이너 또는 스토리지 경로의 경로 이름이 너무 깁니다.
54037 테이블 스페이스에 대한 컨테이너 맵(map)이 너무 복잡합니다.
54038 중첩된 루틴 또는 트리거의 최대 용량을 초과했습니다.
54045 유형 계층 구조의 최대 레벨을 초과했습니다.
54046 인덱스 확장에서 허용된 최대 매개변수가 초과되었습니다.
54047 테이블 스페이스의 최대 크기에 도달했습니다.
54048 페이지 크기가 충분한 임시 테이블 스페이스가 없습니다.
54049 구조화된 유형의 인스턴스 길이가 시스템 한계를 초과합니다.
54050 구조화된 유형에서 최대 허용 속성이 초과되었습니다.
54052 버퍼 풀의 블록 페이지 수가 버퍼 풀의 크기에 비해 너무 큽니다.
54053 BLOCKSIZE에 지정된 값이 유효한 범위내에 있지 않습니다.

클래스 코드 55 오브젝트가 전제(prerequisite) 상태에 있지 않음

표 36. 클래스 코드 55: 오브젝트가 전제(prerequisite) 상태에 있지 않음
SQLSTATE 값  
의미
55001 데이터베이스를 이주해야 합니다.
55002 설명 테이블이 적절하게 정의되어 있지 않습니다.
55006 오브젝트는 현재 같은 응용프로그램 프로세스에서 사용 중이므로 삭제할 수 없습니다.
55007 오브젝트는 현재 같은 응용프로그램 프로세스에서 사용 중이므로 변경할 수 없습니다.
55009 시스템이 읽기 전용 파일 또는 쓰기 보호된 디스켓에 쓰려고 했습니다.
55012 클러스터링 인덱스가 이미 테이블에 있습니다.
55019 테이블이 조작에 유효하지 않은 상태입니다.
55022 파일 서버가 데이터베이스에 등록되지 않았습니다.
55023 루틴을 호출할 때 오류가 발생했습니다.
55024 테이블 관련 데이터가 다른 테이블 스페이스에도 있기 때문에 이 테이블 스페이스를 삭제할 수 없습니다.
55025 데이터베이스를 재시작해야 합니다.
55026 임시 테이블 스페이스는 삭제할 수 없습니다.
55031 오류 맵핑 파일의 형식이 올바르지 않습니다.
55032 이 응용프로그램이 시작된 이후 데이터베이스 관리 프로그램이 중지되었기 때문에 CONNECT문은 유효하지 않습니다.
55033 이벤트 모니터가 작성 또는 수정된 같은 작업 단위(UOW)에서 이벤트 모니터를 활성화할 수 없습니다.
55034 이벤트 모니터가 조작에 유효하지 않은 상태입니다.
55035 테이블이 보호되어 있으므로 삭제할 수 없습니다.
55036 노드가 파티션 맵에서 제거되지 않았기 때문에 삭제할 수 없습니다.
55037 테이블이 다중 노드로 구성된 노드 그룹에 있기 때문에 파티션 키를 삭제할 수 없습니다.
55038 노드 그룹은 재조정(rebalance)되는 중이므로 사용할 수 없습니다.
55039 테이블 스페이스가 적절한 상태에 있지 않기 때문에 액세스 또는 상태 변화가 허용되지 않습니다.
55041 재조정이 수행되는 동안에는 컨테이너를 테이블 스페이스에 추가할 수 없습니다.
55043 구조화된 유형에 근거하는 유형이 지정된 테이블 또는 유형이 지정된 뷰가 있는 경우 이러한 유형의 속성은 변경할 수 없습니다.
55045 필요한 구성요소가 서버에서 사용 가능하지 않으므로 루틴에 대한 SQL 아카이브(SAR) 파일을 작성할 수 없습니다.
55046 지정된 SQL 아카이브가 목표 환경과 일치하지 않습니다.
55047 외부 함수 또는 메소드가 페더레이티드 오브젝트에 액세스하려고 했습니다.
55048 암호화된 데이터는 암호화할 수 없습니다.
55049 이벤트 모니터 테이블이 제대로 정의되지 않았습니다.
55051 ALTER BUFFERPOOL문이 현재 진행 중입니다.
55054 메소드를 중첩 메소드로 정의할 수 없습니다.
55056 데이터베이스를 페더레이션에 사용할 수 없으므로 별칭 통계를 갱신할 수 없습니다.
55060 데이터베이스에 대해 자동 스토리지가 정의되지 않았습니다.
55061 자동 스토리지 테이블 스페이스의 경로 재지정 리스토어가 허용되지 않습니다.
55062 자동 스토리지에 데이터베이스를 사용할 수 없기 때문에 스토리지 경로가 제공될 수 없습니다.

클래스 코드 56 기타 SQL 또는 제품 오류

표 37. 클래스 코드 56: 기타 SQL 또는 제품 오류
SQLSTATE 값  
의미
56031 이 시스템에서는 혼합 및 DBCS 데이터가 지원되지 않기 때문에 절 또는 스칼라 함수는 유효하지 않습니다.
56033 Long 문자열 컬럼의 삽입 또는 갱신 값은 호스트 변수 또는 널(NULL)이어야 합니다.
56038 이 환경에서는 요청된 기능이 지원되지 않습니다.
56072 후속 SQL문을 실행하는 데 영향을 미치지 못하는 하위 레벨 서버에서 지원하지 않는 함수로 인해 실행하지 못했습니다.
56084 LOB 데이터는 DRDA에서 지원되지 않습니다.
56091 복합 SQL문의 실행 결과로 여러 가지 오류가 발생했습니다.
56092 인증 이름이 사용자 ID 또는 그룹 ID이기 때문에 인증 유형을 판별할 수 없습니다.
56095 바인드 옵션이 유효하지 않습니다.
56097 LONG VARCHAR와 LONG VARGRAPHIC 필드는 DEVICE에서 빌드된 TABLESPACE에서 허용되지 않습니다.
56098 내재 리바인드 또는 준비 중에 오류가 발생했습니다.
56099 REAL 데이터 유형은 목표 데이터베이스에서 지원하지 않습니다.
560A0 LOB 값에 대한 조치가 실패했습니다.
560AA 이 시스템에서는 UCS-2가 지원되지 않기 때문에 절 또는 스칼라 함수는 유효하지 않습니다.
560AC 지정된 유형 또는 데이터 소스 버전에 대해서는 랩퍼 정의를 사용할 수 없습니다.
560AF 게이트웨이 집중기를 사용할 때 PREPARE문이 지원되지 않습니다.
560B0 테이블 스페이스 또는 테이블 스페이스 컨테이너 크기 재지정에 대해 새 크기 값이 유효하지 않습니다.
560B1 스토어드 프로시저에 유효하지 않은 커서 스펙이 있습니다.
560B7 복수 행 INSERT의 경우, 시퀀스 표현식의 사용법은 각 행에 대해 동일해야 합니다.
560BB 동적으로 준비되는 CALL문의 INOUT 매개변수에서는 USING절과 INTO절에 같은 호스트 변수를 사용해야 합니다.
560BC 파일에 액세스하는 중에 오류가 발생했습니다.
560BD 페더레이티드 서버가 데이터 소스에서 예기치 않은 오류 코드를 수신했습니다.
560BF 암호화 기능이 사용 불가능합니다.
560C0 유니코드 코드화 체계로 작성된 테이블은 SQL 함수 또는 SQL 메소드에 사용할 수 없습니다.
560C1 유니코드 코드화 체계로 작성된 테이블은 유형이 지정된 테이블이 되거나, 그래픽 유형 또는 사용자 정의 유형을 포함할 수 없습니다.
560C2 삭제된 테이블에 대한 실행기록 파일 항목을 쓰는 데 실패했습니다.
560C3 이후 트리거는 INSERT문에 삽입 중인 행을 수정할 수 없습니다.
560C6 참조 제한조건이 fullselect 내의 SQL 데이터 변경 명령문에서 수정한 행을 수정할 수 없습니다.
560C8 일부 별칭 통계를 갱신할 수 없습니다.
560C9 지정된 명령문을 설명할 수 없습니다.
560CA SQL문이 현재 데이터베이스 파티션에서만 실행될 수 있는 루틴을 참조합니다.

클래스 코드 57 자원이 사용 가능하지 않거나 조작원이 개입함

표 38. 클래스 코드 57: 자원이 사용 가능하지 않거나 조작원이 개입함
SQLSTATE 값  
의미
57001 테이블에 1차 인덱스가 없기 때문에 이 테이블을 사용할 수 없습니다.
57003 지정된 버퍼 풀이 활성화되지 않았습니다.
57007 DROP 또는 ALTER가 보류 중이므로 오브젝트를 사용할 수 없습니다.
57009 가상 스토리지 또는 데이터베이스 자원이 임시로 사용 불가능하게 되었습니다.
57011 가상 스토리지 또는 데이터베이스 자원을 사용할 수 없습니다.
57012 데이터베이스가 아닌 다른 자원을 사용할 수 없습니다. 이는 후속 명령문의 정상적인 실행에 영향을 주지 않습니다.
57013 데이터베이스가 아닌 다른 자원을 사용할 수 없습니다. 이는 후속 명령문의 정상적인 실행에 영향을 주지 않습니다.
57014 처리가 요청된 대로 취소되었습니다.
57016 테이블이 활성화되지 않으므로 액세스할 수 없습니다.
57017 문자 변환이 정의되지 않았습니다.
57019 자원 문제점으로 인해 명령문이 실패했습니다.
57020 데이터베이스가 들어 있는 드라이브가 잠겨 있습니다.
57021 디스켓 드라이브 문이 열려 있습니다.
57022 명령문의 권한 부여 ID가 적절한 DB 스페이스를 소유하지 않으므로 테이블을 작성할 수 없습니다.
57030 응용프로그램 서버(AS)로의 연결이 정의된 설치 한계를 초과했습니다.
57032 최대수의 동시 데이터베이스가 시작되었습니다.
57033 자동 롤백 없이 교착 상태 또는 시간종료가 발생했습니다.
57036 트랜잭션 로그가 현재 데이터베이스에 속하지 않습니다.
57046 데이터베이스 또는 인스턴스가 Quiesce 상태이기 때문에 새로운 트랜잭션을 시작할 수 없습니다.
57047 디렉토리에 액세스할 수 없기 때문에 내부 데이터베이스 파일을 작성할 수 없습니다.
57048 테이블 스페이스에 대한 컨테이너에 액세스하는 동안 오류가 발생했습니다.
57049 운영 체제 프로세스 한계에 도달했습니다.
57050 파일 서버가 현재 사용 가능하지 않습니다.
57051 계산된 CPU 비용이 자원 한계를 초과합니다.
57052 노드에 모든 임시 테이블 스페이스에 대한 컨테이너가 없으므로 이 노드를 사용할 수 없습니다.
57053 조작이 충돌되므로 테이블에서 조작을 수행할 수 없습니다.
57055 페이지 크기가 충분한 임시 테이블 스페이스를 사용할 수 없습니다.
57056 데이터베이스가 NO PACKAGE LOCK 모드에 있으므로 패키지를 사용할 수 없습니다.
57057 SQL문 DRDA 체인의 이전 상태로 인해 SQL문을 실행할 수 없습니다.
57059 테이블 스페이스에 지정된 조치에 사용할 수 있는 스페이스가 충분하지 않습니다.

클래스 코드 58 시스템 오류

표 39. 클래스 코드 58: 시스템 오류
SQLSTATE 값  
의미
58004 시스템 오류(후속 SQL문을 정상적으로 실행할 수는 있음)가 발생했습니다.
58005 시스템 오류(후속 SQL문을 정상적으로 실행하지 못하게 함)가 발생했습니다.
58008 후속 DDM 명령 또는 SQL문의 정상적인 실행에는 영향을 주지 않는 분산 프로토콜 오류로 인해 실행에 실패했습니다.
58009 대화가 할당해제되게 만드는 분산 프로토콜 오류로 인해 실행에 실패했습니다.
58010 후속 DDM 명령 또는 SQL 문의 정상적인 실행에 영향을 주는 분산 프로토콜 오류로 인해 실행에 실패했습니다.
58011 바인드 프로세스가 진행되는 동안 DDM 명령이 유효하지 않습니다.
58012 지정된 패키지명과 일치하는 토큰을 사용한 바인드 프로세스가 실행 중이 아닙니다.
58014 DDM 명령이 지원되지 않습니다.
58015 DDM 오브젝트가 지원되지 않습니다.
58016 DDM 매개변수가 지원되지 않습니다.
58017 DDM 매개변수 값이 지원되지 않습니다.
58018 DDM 응답 메시지가 지원되지 않습니다.
58023 시스템 오류로 인해 현재 프로그램이 취소되었습니다.
58030 입출력 오류가 발생했습니다.
58031 시스템 오류로 인해 연결에 실패했습니다.
58032 분리 모드 사용자 정의 함수(UDF)에 대한 프로세스를 사용할 수 없습니다.
58034 DMS 테이블 스페이스에서 오브젝트에 대한 페이지를 찾는 중에 오류가 발견되었습니다.
58035 DMS 테이블 스페이스에서 오브젝트에 대한 빈 페이지를 찾는 중에 오류가 발견되었습니다.
58036 지정된 내부 테이블 스페이스 ID가 없습니다.
ZZZZZ 플레이스 홀더 sqlstate는 개발용으로만 사용하십시오. 코드 이동 전 변경해야 합니다.
저작자 표시 비영리 변경 금지
신고

'DB > DB2' 카테고리의 다른 글

DB2 check list  (0) 2011.08.10
DB2관련 Processor 들 정리  (0) 2011.08.10
DB2 운영 명령어 모음  (0) 2011.08.10
DB2 기초  (0) 2011.07.15
DB2 SQLSTATE 메시지  (0) 2010.03.16

눈구경

소은 2010.01.31 21:33

신고

'소은' 카테고리의 다른 글

눈구경  (0) 2010.01.31
시베리아 야생 아기 호랑이  (0) 2010.01.31
잠에서 꺠고  (0) 2010.01.31
집에서  (0) 2010.01.31
올림픽 공원서  (0) 2009.11.11
소은이 집에서  (0) 2009.11.11

시베리아 야생 아기 호랑이

소은 2010.01.31 21:29

신고

'소은' 카테고리의 다른 글

눈구경  (0) 2010.01.31
시베리아 야생 아기 호랑이  (0) 2010.01.31
잠에서 꺠고  (0) 2010.01.31
집에서  (0) 2010.01.31
올림픽 공원서  (0) 2009.11.11
소은이 집에서  (0) 2009.11.11

잠에서 꺠고

소은 2010.01.31 21:26

신고

'소은' 카테고리의 다른 글

눈구경  (0) 2010.01.31
시베리아 야생 아기 호랑이  (0) 2010.01.31
잠에서 꺠고  (0) 2010.01.31
집에서  (0) 2010.01.31
올림픽 공원서  (0) 2009.11.11
소은이 집에서  (0) 2009.11.11

집에서

소은 2010.01.31 21:24

신고

'소은' 카테고리의 다른 글

시베리아 야생 아기 호랑이  (0) 2010.01.31
잠에서 꺠고  (0) 2010.01.31
집에서  (0) 2010.01.31
올림픽 공원서  (0) 2009.11.11
소은이 집에서  (0) 2009.11.11
돌잔치  (0) 2009.10.06

올림픽 공원서

소은 2009.11.11 17:59

신고

'소은' 카테고리의 다른 글

잠에서 꺠고  (0) 2010.01.31
집에서  (0) 2010.01.31
올림픽 공원서  (0) 2009.11.11
소은이 집에서  (0) 2009.11.11
돌잔치  (0) 2009.10.06
가족사진  (0) 2009.09.25

소은이 집에서

소은 2009.11.11 17:56

신고

'소은' 카테고리의 다른 글

집에서  (0) 2010.01.31
올림픽 공원서  (0) 2009.11.11
소은이 집에서  (0) 2009.11.11
돌잔치  (0) 2009.10.06
가족사진  (0) 2009.09.25
소은이 돌사진11  (0) 2009.09.25

돌잔치

소은 2009.10.06 11:23

박민상&윤현숙의 첫째딸 소은이의 첫생일을 축하해 주세요.

10월 10일 토요일 오후 5:30 ~ 8:30

GS마트 송파점 2층 에비슈라(ebishura) 씨부트 뷔페 입니다.


신고

'소은' 카테고리의 다른 글

올림픽 공원서  (0) 2009.11.11
소은이 집에서  (0) 2009.11.11
돌잔치  (0) 2009.10.06
가족사진  (0) 2009.09.25
소은이 돌사진11  (0) 2009.09.25
소은이 돌사진10  (0) 2009.09.25

가족사진

소은 2009.09.25 13:17

신고

'소은' 카테고리의 다른 글

소은이 집에서  (0) 2009.11.11
돌잔치  (0) 2009.10.06
가족사진  (0) 2009.09.25
소은이 돌사진11  (0) 2009.09.25
소은이 돌사진10  (0) 2009.09.25
소은이 돌사진9[나폴소은]  (0) 2009.09.25

소은이 돌사진11

소은 2009.09.25 13:16

신고

'소은' 카테고리의 다른 글

돌잔치  (0) 2009.10.06
가족사진  (0) 2009.09.25
소은이 돌사진11  (0) 2009.09.25
소은이 돌사진10  (0) 2009.09.25
소은이 돌사진9[나폴소은]  (0) 2009.09.25
소은이 돌사진8  (0) 2009.09.25

소은이 돌사진10

소은 2009.09.25 13:15

신고

'소은' 카테고리의 다른 글

가족사진  (0) 2009.09.25
소은이 돌사진11  (0) 2009.09.25
소은이 돌사진10  (0) 2009.09.25
소은이 돌사진9[나폴소은]  (0) 2009.09.25
소은이 돌사진8  (0) 2009.09.25
소은이 돌사진7  (0) 2009.09.25


티스토리 툴바