[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T

서버를 기동하는데..갑자기 아래와같은 오류가 발생!!
ORA-28001: the password has expired 해결법
ORA-28001: the password has expiredORA-02063: line가 선행됨 (DL_RDMS로 부터)ORA-06512: "SRIMS_AD_20130807.SF_SMP_BINDERITEMVALUE_LST", 10행ORA-06512: "SRIMS_AD_20130807.SF_SMP_BINDERITEMVALUE_LST", 23행
ORA-28001: the password has expired(유효시간 종료) 에러가 나오면서,
DB연결이 실패할 때가 있다.
유효기간 종료이므로 이를 해결하기 위해서는 오라클을 실행해서
사용자명(ID) :
여기에 기존에 쓰던 ID를 넣으면, password가 expired 되었으니 새로 입력하라고 뜬다.
그러면 새로운 password를 쳐주고
확인을 위해서 한번 더 password를 쳐주면
acet 박태하가 추천하는 readtrend 추천글!
|
:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T
오늘은 오라클에서 권한에 대해서 알아보겠습니다^-^good~
[1] 어떤 테이블에 SELECT 권한 주기
ACET 계정에 ORACLE_TEMP 테이블에 SELECT 권한을 줄려고 한다면!!
===============================================
GRANT SELECT ON ORACLE_TEMP TO ACET
===============================================
[2] 함수 조회를 할 수 있도록 실행 권한 주기!
=========================
GRANT execute
ON 함수명
TO 사용자이름(스키마 이름)
=========================
[3] 권한 뭐뭐 있나 알아보자!
SELECT * FROM user_tab_privs_recd;

[4] 위에처럼 했는데도 아래의 에러가 나는 경우!~~(아마 다른 계정으로 SELECT 권한을 주고자 할 때!!)
즉, 디비링크 select * from ORACLE_TEMP@LK_ACET
라고 줬을 때 못찾는경우~~~~!!
바로 SYNONYM을 주지 않아서이다!!(여기에서는 다른계정으로 조회를 할 경우!!)
이럴 경우에는 SYNONYM를 만들어주므로써 해결 할 수 있다^-^
ex) 아래 처럼 기존 오브젝트(USER)를 쓰고자하는 USER로 SYNONYM 해 줌으로써 해결 할 수 있다^-^good
CREATE SYNONYM ACET.ORACLE_TEMP FOR ORG.ORACLE_TEMP
GRANT SELECT ON ORG.ORACLE_TEMP TO ACET
특히!!! SYNONYM 생성 시 어디를 기준으로 만들어줄지 고민이 될 것이다!
ACET에?? 아니면 ORG 계정에???
당연히 쓰고자하는 계정에다가 만들어주면 된다.
ACET에^0^ good~

acet 박태하가 추천하는 readtrend 추천글!
|
:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T

ora-01031
select m.*, m.rowid from acetusr m
where user_code = '101203'
로 rowid를 통해서 밑에다가 하나 추가를 할려고 했다..
그런데!!!!
ora-01031 오류 발생!!!!
바로..권한이 없었던 것이였다!!!
권한 문제!
acet 박태하가 추천하는 readtrend 추천글!
|
:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T

[-904] [ORA-00904: "B"."STR_CODE": invalid identifier
라는 오류가 났다!!!
java.sql.SQLException : ORA-00904 : 열명이 부적합합니다.
알고보니..compile을 다른 걸 했었던 것이였다..ㅋㅋ
테이블 명이나 컬럼 등! 컴파일이 잘되었는지도 살펴보자^-^good~
acet 박태하가 추천하는 readtrend 추천글!
|
:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T
오라클 에러!!

자세히 쿼리를 들여다 보니.. :user 를 그대로 두고 돌렸던 것이였다..ㅋㅋ
즉 쿼리형태로 다 바뀌여져있는지 확인이 필요하다.
변수가 아닌!! ㅎㅎㅎ
acet 박태하가 추천하는 readtrend 추천글!
|
:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T
위의 오류가 나면..
tnsnames.ora 에 뭔가 잘못되었거나 login할 때 뭔가 잘못 써준것이다.
경로 : ex) D:\oracle\ora92\network\ADMIN
로긴 시 화면
즉, tnsnames.ora 가 중요하다^-^ good~~
acet 박태하가 추천하는 readtrend 추천글!
|
:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T
옵티마이저..
왠지 마징카이저, 그레이트 마징가~등에서 나오는 로봇 이름 같다..
anyway..오늘 정리한 내용!!! 계속 보고 익히자! ㅋㅋ
아..글씨가...ㅠ_ㅠ ㅋㅋㅋㅋㅋㅋ 나만 알아보면 됐지 뭐~-_-ㅋ
간단하게 보면
옵티마이저는
규칙기반, 비용기반 2가지의 종류가 있다.
규칙기반은 인덱스구조,연산자 등으로 옵티마이저가 판단을 하며, 이것은 규칙적이고 분명하다.
단점으로는 테이블크기, 인덱스내의 컬럼값들의 분포도등의 통계정보를 전혀 이용하지 않기 때문에
경우에 따라 도저히 있을 수 없는 악성실행계획이 나타날 확률이 높다. 옵티마이저를 어루만지는 능력이
낮은 사람들에게 특히 문제가 발생 할 가능성이 매우 높다.
그래서 이런것을 보안하기 위해 나온 것이 비용기준의 옵티마이저이다.
이것은 다양한 통계정보를 이용하며, 통계정보의 관리를 통해 최적화를 제어하며, 옵티마이저의 깊은 이해 없이도 최소한의 성능을 보장 한다.
그러나 단점으로 실행계획의 예측이 어렵고, 버전에 따라 변화가 심하거나 실행계획의 제어가 어렵다.
대충 머 이런 내용이다 =ㅁ=;;
예로는
수동 카메라 ==> 규칙기반 옵티마이저
자동 카메라 ==> 비용기준 옵티마이저
라고 생각 할 수 있다.
acet 박태하가 추천하는 readtrend 추천글!
|
:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T
문제 풀어서 추첨으로 "던킨도너츠 교환권(6천원) 짜리를 받았다~~오예~^0^good~~

그런데..3월8일!!!! 기프티콘이 안왔다 ㅠ_ㅠ 힝..
p.s 모바일로 와서 맛있게 잘 먹었습니다 감사합니다^-^
acet 박태하가 추천하는 readtrend 추천글!
|
:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T
oracle spool은 쉽게 말하면 select의 내용을 파일로 저장을 하는 것이다.
set 옵션을 한번 알아보자!
set head off -- 컬럼명을 보이지 않게!
set timing off --
SQL 문을 실행하는데 소요된 시간을 출력하기 위한 시스템 변수이다. 시간은 '시:분:초.밀리초' 형식으로 표시된다.
더보기
더보기
SQL> show timing
timing OFF
SQL> select * from dept;
DEPTNO DNAME LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
4 개의 행이 선택되었습니다.
SQL>
SQL> set timing on
SQL> show timing
timing ON
SQL> select * from dept;
DEPTNO DNAME LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
4 개의 행이 선택되었습니다.
경 과: 00:00:00.00
SQL>
set verify off --
변수값 대치 전후의 SQL문 또는 PL/SQL 문의 텍스트를 나열할지 여부
set feedback off
더보기
feedback 변수는 select 문의 실행 결과를 표시하기 위하여 출력 행의 수를 지정하기 위한 시스템 변수이다.
예를 들어, feedback 값을 3으로 설정하면 출력 행의 수가 3 이상인 경우에만 *개의 행이 선택되었습니다라는 출력 메시지가 출력된다. 【형식】
feedback {6¦n¦ON¦OFF}
여기서
• 기본값은 6
• n은 n개이상의 *개의 행이 선택되었습니다라고 출력
• off는 *개 행이 선택되었습니다라는 출력 메시지를 표시하지 않음
• on은 기본 6개 이상이면, *개 행이 선택되었습니다라는 출력 메시지를 표시함
【예제】
SQL> show feedback
6 또는 그 이상의 행에 대한 FEEDBACK ON
SQL>
SQL> select * from dept;
DEPTNO DNAME LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
☜ 기본이 6개이므로 출력 메시지가 없음
SQL> set feedback 3
SQL> select * from dept;
DEPTNO DNAME LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
4 개의 행이 선택되었습니다. ☜ 3개이상이므로 출력 메시지가 있음
set pagesize 0 -- 각 페이지에 출력할 줄 수를 지정한다.
set trimspool on -- 공백제거(아래 더보기 참조)
더보기
SQL> set trimspool ON
SQL> select empno,ename from emp;
EMPNO ENAME
---------- --------------------
7369 SMITH☜ 이하 공백이 없음
7499 ALLEN☜ 이하 공백이 없음
7521 WARD☜ 이하 공백이 없음
7566 JONES☜ 이하 공백이 없음
7654 MARTIN☜ 이하 공백이 없음
7698 BLAKE☜ 이하 공백이 없음
7782 CLARK☜ 이하 공백이 없음
7788 SCOTT☜ 이하 공백이 없음
7839 KING☜ 이하 공백이 없음
7844 TURNER☜ 이하 공백이 없음
7876 ADAMS☜ 이하 공백이 없음
7900 JAMES☜ 이하 공백이 없음
7902 FORD☜ 이하 공백이 없음
7934 MILLER☜ 이하 공백이 없음
14 rows selected.
SQL>
SQL> set trimspool off
SQL> select empno,ename from emp;
EMPNO ENAME
---------- --------------------
7369 SMITH<--------공백으로 채워짐--------------------------------------->
7499 ALLEN<--------공백으로 채워짐--------------------------------------->
7521 WARD<---------공백으로 채워짐--------------------------------------->
7566 JONES<--------공백으로 채워짐--------------------------------------->
7654 MARTIN<-------공백으로 채워짐--------------------------------------->
7698 BLAKE<--------공백으로 채워짐--------------------------------------->
7782 CLARK<--------공백으로 채워짐--------------------------------------->
7788 SCOTT<--------공백으로 채워짐--------------------------------------->
7839 KING<---------공백으로 채워짐--------------------------------------->
7844 TURNER<-------공백으로 채워짐--------------------------------------->
7876 ADAMS<--------공백으로 채워짐--------------------------------------->
7900 JAMES<--------공백으로 채워짐--------------------------------------->
7902 FORD<---------공백으로 채워짐--------------------------------------->
7934 MILLER<-------공백으로 채워짐--------------------------------------->
14 rows selected.
set termout off
더보기
script로 작성된 문장을 @, @@, START로 실행할 때 명령에 의해서 생성된 출력을 디스플레이할 지 여부를 지정
termout 변수는 스크립트(*.sql) 파일에 의해 실행된 여러 개의 SQL 문의 출력 결과를 확인할 필요가 없을 경우에 유용하게 사용된다.
Default는 ON 상태임
【형식】
TERMOUT {OFF ¦ ON}
OFF | SQL 실행 결과를 화면에 출력 안 함 |
ON | SQL 실행 결과를 화면에 출력함 |
|
【예제】
SQL> set termout off
SQL> start rdbms/admin/catalog.sql
☜ SQL 실행 결과가 화면에 출력되지 않음
SQL> set termout on
SQL> start rdbms/admin/sql.bsq
문법 :
spool
select 문
spool off
ex)
spool 파일명(c:\taeha.txt)
select th_code
from th_table
where sale_tcode = '02'
and th_date <= to_char(sysdate+7,'yyyymmdd')
and th_code <> '777'
order by 1;
spool off
exit;
참고한 사이트 : http://radiocom.kunsan.ac.kr/lecture/oracle/variable/
acet 박태하가 추천하는 readtrend 추천글!
|
:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T
:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T
궁금하다!!
테이블스페이스? 감이 오질 않는다. 대충은 어느정도으 공간만을 쓰겠다고 선언하는 것과 같은데..
보통 C언어에서 보면 malloc를 할당해서 쓰는 것 처럼!?????? 암튼 정리 해보자!
먼저 알아야 할 것이있다. 테이블스페이스를 논할려면 오라클의 논리적인 데이터저장소에 대해서 알아야 한다.
1.
BLOCK : 오라클에서 말하는 데이터 입,출력의 최소단위
음..2KB,4KB,8KB,16KB,32KB 크기종류라고 한다.
언제 어디에서 설정을 해주는 걸까??...궁금증은..깊어만 간다..배우고 알자!ㅠ_ㅠ
음..오라클 셋팅시에 해주는거 같은데..설치도 한번 정리해봐야겠다.
2.
EXTENT : SEGMENT의 할당단위
1 EXTENT는 8 BLOCK 이다.
3.
SEGMENT : 테이블(TABLE), 인덱스(INDEX)를 합쳐서 SEGMENT라고 부른다.
4.
TABLESPACE : SEGMENT를 저장해 놓은 공간.
5.
DATABASE : 여러개의 TABLESPACE를 모아놓은 것.
테이블 스페이스를 db에서 확인 할려면 아래의 sql을 수행한다.
select * from dba_tablespaces;
테이블스페이스 이제 감이 조금 오는것인가?? 머리속에서의 데이터 구조는 정확히 그려지지 않지만..
어떤것인지는 알겠다.
테이블스페이스를 쓸려면 생성 -> 테이블생성시 쓰고자하는 테이블스페이스를 지정해주면 된다.
ex) 테이블 스페이스 생성
CREATE TABLESPACE TEST_ACET
DATAFILE 'XXXX\XXXX\TEST_ACET01.dbf'
SIZE 500M
EXTENT MANAGEMENT LOCAL
SEGMENT SPACE
이제 테이블을 생성할 때 테이블스페이스를 지정해서 만들어주면 된다^-^good~
ex) 테이블 생성
CREATE TABLE ACET_TB(
ID VARCHAR2(10),
PW VARCHAR2(20)
)TABLESPACE TEST_ACET
- 끝 -
끝이라고 생각했지만..헷깔리는게 있다...
1. 테이블스페이스 생성
2. 테이블에 테이블스페이스 사용
3. 자..여기에서..INSERT 시 메모리에 있다가 commit 때리면 테이블스페이스에 저장이 되어진다고 한다!!!!
저장이 되어질때, 500M인 테이블스페이스를 생성했다고 하면, 해당 path에 500M의 범위의 내용이 들어가는 것인가?
INSERT가 2번 일어나면 해당 테이블스페이스에 500M이하인 내용이 저장이 되는것인가??????-_-;;
마치 객체 테이블스페이스 inset객체 = new 테이블스페이스(); 이라고했을
때 insert객체.add("실제내용"); 이것처럼?? 아니면 new가 한번만 일어나고 그냥 내용만 쌓이는건가?? 범위는 500M이하로??
헷깔린다....ㅠ___ㅠ
간략하게 정리해보면
1) INSERT가 일어남.
2) 그 내용이 테이블스페이스의 범위(500M)
3) 테이블스페이스의 경로(DATAFILE 'XXXX\XXXX\TEST_ACET01.dbf') 에 저장.
으로 볼 수 있겠다. 자꾸 자바랑 엮어서 생각하니깐 답 안나온다 ㅋㅋㅋ 오라클은 C언어로 만들어진거 같은디..ㅋ
다음에는 unique와 pk의 차이점에 대해서 알아보자 ㅋㅋ 아니면 bind변수를 써야하는 이유? - 끝! -
acet 박태하가 추천하는 readtrend 추천글!
|
:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T
강좌를 보고있다.
오라클 클럽~
주소 : http://www.oracleclub.com/oraclelecture.action?lectureType=SQL
크게 보면
유저생성 권한 설정
테이블 생성 수정 삭제
데이터 조작어(DML)
내장함수
그룹함수
서브쿼리
오라클 객체
그냥 쭉~~보고있다. 다보고나서 한번 정리해서 올려야겠다^0^good~
인사발령이 나서 팀이 옮겨졌는데 영업정보 파트로 오게 되었다.
더욱 더 오라클을 빨리 습득해야할 것 같다. 집에가서는 동영상을 봐야지! 뽜이팅!
acet 박태하가 추천하는 readtrend 추천글!
|
:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::