ORA-00054 발생했을때 처리하는 방법.. 발생 가능성은 다양하게 존재한다. Commit가 수행되지 않았을 경우라던가 Toad에서 Schema Browser를 사용하다가 삽질을 했다던가 등의 문제로 다양한 경우에서 발생할 수 있는 문제이다. Truncate같은 명령은 ORA-00054라는 에러라도 출력하지만, DML(Delete) 문장 실행시엔 그냥 멈춰버리는 경우도 있다고 한다. 해결 방법은 오라클 서비스를 재시작 하면 쉽게 처리가되지만, DB를 사용하는 곳에서 DB 재시작이 그리 녹녹하진 않을 것이다. 이러한 에러가 발생하는 이유는 테이블에 Lock이 걸려서 생기는데 이 원인을 해결해주면 된다. [Qeury] SELECT A.sid , A.serial# FROM v$session A , v$loc..
테이블명 변경: RENAME {변경전이름} TO {변경후이름}; 인덱스명 변경: ALTER INDEX {변경전이름} RENAME TO {변경후이름}; 1.변경하고자 하는 COLUMN으로 Unique Index를 생성한다. 쿼리 - CREATE UNIQUE INDEX PK명 ON TABLE명(COLUMN명) TABLESPACE TABLESPACE명; 예제(테이블스페이스는 사용 안함) - CREATE UNIQUE INDEX PK_FTA_PO_LEDGER ON FTA_PO_LEDGER(COMPANY_CODE, PROJECT_CODE, FTA_CODE, ITEM_CODE); 2.해당하는 PK를 삭제한다 ALTER TABLE RECRUIT_APP DROP PRIMARY KEY 쿼리 - ALTER TABLE TAB..
CREATE PROCEDURE [dbo].[AP_getcustcode] AS BEGIN RETURN SELECT dbo.lpad( ( select max(cust_code)+1 from customerinfo ), 15, '0' ) ============================================== SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER OFF GO CREATE FUNCTION [dbo].[GetCSContactSeqNew] ( @CustCode char(15) ) RETURNS char(3) AS BEGIN declare @id char(3) SELECT @id = dbo.LPAD( ISNULL(MAX(CSCON_CODE)+1,1), 3, '0') ..
SELECT OWNER, OBJECT_NAME, OBJECT_TYPE, CREATED, LAST_DDL_TIME FROM DBA_OBJECTS WHERE owner = 'APLUSORA' -- 계정 --AND object_name = 'EMS_V_KIUM_CUSTOMER_LETTER' -- 테이블/INDEX/VIEW -- 오너, 테이블명, 타입, 테이블생성날짜, 마지막 DDL 날짜 -- 마지막 DDL 날짜는 GRANT, REVOKE등 해당 OBJECT에 대한 권한작업 시에도 갱신됨 [출처] 제트스윙 블로그 - http://www.zetswing.com
예를 들어 다른 계정에서 특정 유저가 갖고있는 테이블 "COM_COD_DPT" 의 select 권한을 주고 싶을때 다음과 같이 grant 를 주시면 됩니다. > GRANT SELECT ON EMS_V_KIUM_CUSTOMER_LETTER TO EDM ; 이렇게 하신후 다른 계정 (예, sukwoo 라는 다른 유저) 에서 해당되는 테이블을 select 하시면 select 가 될겁니다.......... > select * from APLUSORA.EMS_V_KIUM_CUSTOMER_LETTER ; 하시면 select 가 될겁니다. GRANT ALTER ON APLUSORA.COM_USR_M TO PUBLIC; GRANT DELETE ON APLUSORA.COM_USR_M TO PUBLIC; GRANT INS..
1. 증상 오라클 특정 유저 패스워드 변경 후 처음에는 로그인이 잘 되었는데 어느순간 부터 ORA-28000 : the account is locked 오류 발생 2. 원인 특정 유저 패스워드 변경 후 수시로 DB에 접속하는 프로그램에서 변경된 패스워드를 반영하지 않았음. 프로그램에서 계속 잘못된 패스워드로 접속을 시도하였고 오라클 설정에 따라 자동으로 특정 유저가 LOCK됨. 3. 해결방법 1) USER 패스워드 만료 상태 확인하기 1. system계정으로 로그인 하여 다음을 입력 한다. C:\> sqlplus "/as sysdba" --system계정으로 로그인 ... SQL> select * from dba_users; --DB유저 정보 확인하기 SELECT USERNAME, ACCOUNT_STAT..
1. 디비링크 생성 create [public] database link 링크이름 connect to 원격디비 아이디 identified by 원격디비 비밀번호 using ‘TNS명’ … public : public 을 사용하면 공용 디비링크가 생성된다. 사용하지 않으면 생성한 사용자만 사용이 가능하다. * NLS_CHARACTER_SET이 동일하지 않으면 한글이 깨져서 보인다. … 예) create public database link linkWebHR connect to ksprg identified by pw1234 using ‘WEB_HR’ … 2. 디비링크 사용 select * from table@링크이름 … 예) select * from table@linkWebHR … 3. 디비링크 삭제 dr..
1) sample(n)을 활용한 예 - 해당 테이블에서 n%의 데이터를 무작위로 추출 SELECT * FROM MAILQUEUE sample(10) -- 10% 데이터 추출 WHERE 추출조건 2) dbms_random.value - 무작위로 테이블을 정렬하는 기능 추출 조건에 맞는 데이터를 무작위로 정렬해서 상위 몇 개의 행만 끄집어 내는 방식 SELECT * FROM MAILQUEUE sample(10) -- 10% 데이터 추출 WHERE 추출조건 AND ROWNUM < 6 ORDER BY dbms_random.value * 속도면이나 쿼리의 간결한 측면에서는 2번보다는 1번을 추천 참조 - http://blog.naver.com/agney?Redirect=Log&logNo=60131459595
- Total
- Today
- Yesterday
- 데이터
- IP
- 설정
- delete
- 자동차
- java
- 파일
- Oracle
- table
- Linux
- eclipse
- DB
- sql
- 서버
- 테이블
- server
- Shell
- Windows
- apache
- user
- select
- 오라클
- 리눅스
- DATABASE
- Toad
- MySQL
- tomcat
- mssql
- 윈도우
- 백업
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |