본문 바로가기

Data Layter

(10)
DB 날려먹었는데, sys 스키마 하위 데이터가 없을때 누군가가 개발환경에서 db를 날려먹었는데 sys계정 하위에 시스템 테이블들도 다 없는 경우가 있다. /tibero/scripts/system.sh 돌려주면 된다! `conn $id_passwd@$svr_sid;` 라인에서 문제생기면 `conn $id_passwd@tibero;`로 바꿔주면 된다.
JDBC-5074 JDBC-5074:Given string does not represent a number in proper format. 정말 화나는 티베로 버그이다. 인터넷을 검색해보면 오라클은 날짜 자동 형변환해주고, 티베로는 안해줘서 생기는 오류라고 나온다. 이런 경우에도 분명 JDBC-5074가 발생한다. 그러나! 아래와 같이 쿼리를 짰다고 가정하자 INSERT INTO TB_WORKS_USER_CATEGORY SELECT TB_WORKS_USER_CATEGORY_SEQ.NEXTVAL AS USER_CATEGORY_ID ,T.* ,'' MOD_USER ,'' MOD_DATE FROM (SELECT T1.USER_ID AS USER_ID ,'WORKS_CM_BASIC' AS USER_CATEGORY_NAME ,'..
데이터가 있는 컬럼에 데이터 타입 변경하는 꿀팁 테이블에 데이터가 이미 들어 있는 경우 데이터 타입을 변경할 때 테이블에 변경할 컬럼과 이름을 새롭게 추가하고 데이터를 넣은 후 컬럼 이름을 변경한다. 아래와 같이 변경한다고 가정하자 MODIFY_DATETIME VARCHAR(20) → MODIFY_DATETIME TIMESTAMP(3) WITH TIME ZONE 1. MODIFY_DATETIME_TZ TIMESTAMP(3) WITH TIME ZONE 로 컬럼을 추가한다. ALTER TABLE TABLE_NAME ADD COLUMN MODIFY_DATETIME_TZ TIMESTAMP(3) WITH TIME ZONE 2. UPDATE를 통해 MODIFY_DATETIME_TZ 에 형식에 맞춰 캐스팅한 데이터를 넣는다. UPDATE TABLE_NAME SET..
Error (TBR-12033) : Lock acquisition failed in nowait mode 1. 트랜젝션을 발생시키는 session id 찾는다 select * from V$TRANSACTION 2. SID, 시리얼번호, SQL번호 select sid, serial#, sql_id, PREV_SQL_ID from v$session where sid = :sess_id 3. 장시간 connection 되어 있는 쿼리를 확인 한다. select * from v$sqltext where sql_id= :PREV_SQL_ID or :sql_id 4. kill 세션 alter system kill session( SID, SERIAL);
5072: Failure converting NUMBER to or from a native type. 티베로에서 DDL을 수행할 때 "JDBC-5072 Failure converting NUMBER to or from a native type” error in tibero" 와 같은 오류 메시지를 볼 수 있다. 처음 보면 당황한다. 테이블에 데이터가 존재하기 때문에 나는 버그라고 착각하는데 이건 그냥 티베로 버그다. _DD_TBL 테이블의 ROW_CNT가 NULL이어서 NUMBER가 아니기 때문에 오류가 난 것으로 파악된다. 해결방법 우선 SYS 계정으로 접속해야 한다. 단일 테이블이 문제인 경우 1.오류가 난 테이블의 OBJECT_ID를 검색한다. SELECT OBJECT_ID FROM DBA_OBJECTS WHERE OBJECT_NAME = '(TABLE_NAME)'; 2. 검색된 OBJECT_ID들..
pk unique index 삭제 다른테이블의 기본키를 외부키로 참조한 경우 중복값을 허용해야하는데 UNIQUE INDEX가 걸려있어서 인덱스를 삭제하려고 하면 ORA-02429 cannot drop index used for enforcement of unique/primary key 라는 에러메시지와 함께 삭제를 실패하는 경우가 있다. 이것은 인덱스를 삭제하지 말고 제약조건을 삭제해야한다 조회를 해보자 SELECT * FROM USER_CONSTRAINTS WHERE TABLE_NAME = '(테이블 이름)' 어떤 제약조건인지 볼 수 있을 것이다. 제약조건을 삭제하면 된다. ALTER TABLE 테이블명 DROP CONSTRAINT (제약조건 이름)
그런 Rest Api로 괜찮은가? Rest란 - REpresentational State Transfer - a way of providing interoperability(상호 운용성) between computer systems on the Internet. 역사 WEB(1991) Q: 어떻게 인터넷에서 정보를 공유할 것인가? A: 정보들을 하이퍼 텍스트로 연결한다. 표현방식 : HTML 식별자 : URI 전송방법 : HTTP HTTP/1.0(1994-1996) Roy T. Fielding: "How do I improve HTTP without breaking the Web?" 해결책 : HTTP Object Model --> Rest Api API XML-RPC(1998) -> SOAP by Microsoft SOAP를 사용한 A..
Tibero_tibero is stopped or disabled. Please confirm the service state or event logs (Application / System) Tibero_tibero is stopped or disabled. Please confirm the service state or event logs (Application / System) 개발환경으로 쓰고 있는 pc 를 계속해서 재부팅 했더니 tbboot를 하면 위와 같은 메세지가 나온다 도스창을 관리자로 열어서 tbboot를 실행하면됨