'oracle'에 해당되는 글 31건

  1. 2015.04.08 Oracle PartnerNetwork(OPN) 혜택
  2. 2014.02.12 ORA-609 Error (11.1.0.6 to 11.2.0.3)
  3. 2014.02.12 Oracle 11g Enterprise Option 내용
  4. 2013.11.15 Oracle Trim Function
  5. 2013.08.29 Certification Information for Oracle Database on Microsoft Windows x64 (64-bit)
  6. 2013.08.29 [Oracle] Current Interoperability Support Situation
  7. 2013.08.21 Oracle Database 12c : Tom’s Top 12 Things About the Latest Generation of Database Technology
  8. 2013.04.09 A Comparison of Oracle's DATE and TIMESTAMP Datatypes
  9. 2013.04.09 Comparison Timestamp vs. Date Data Type
  10. 2013.03.06 Oracle PL/SQL 기초 교육 문서

Oracle PartnerNetwork(OPN) 혜택

Oracle 2015. 4. 8. 11:11
이미 Oracle PartnerNetwork 멤버인 경우 파트너 혜택 표 액세스
OPN 혜택 및 리소스
Silver
Gold
Platinum
Diamond
파트너 환영 키트
체크 표시
체크 표시
체크 표시
체크 표시
안전한 OPN 파트너 웹 사이트 액세스 
체크 표시
체크 표시
체크 표시
체크 표시
자료실 컨텐츠의 제한적 이용
Cloud Services, 1-Click 및 Oracle Database Appliance 자료실
체크 표시
체크 표시
체크 표시
파트너 뉴스레터
체크 표시
체크 표시
체크 표시
체크 표시
Oracle Partner Business Center
체크 표시
체크 표시
체크 표시
Global Diamond Desk
전화를 통한 파트너 관리 지원1
 
체크 표시
체크 표시
체크 표시
전담 오라클 파트너 비즈니스 컨설턴트
 
 
체크 표시
체크 표시
Oracle OpenWorld에서 파트너 포럼 및/또는 라운지에 참가하여 솔루션 소개2
체크 표시
체크 표시
체크 표시
체크 표시
세일즈 부문 부사장/경영진 후원자와의 미팅에 초대
 
 
체크 표시
체크 표시
파트너 자문 위원회 참가2
 
 
체크 표시
체크 표시
경영진 파트너 포럼 참가2
체크 표시
체크 표시
체크 표시
체크 표시
Partner Award 수상 자격1
체크 표시
체크 표시
체크 표시
체크 표시
Global Alliance Manager 지정   
체크 표시
오라클 경영진 후원  
지역별
글로벌
역량 강화 혜택 및 툴
Silver
Gold
Platinum
Diamond
파트너 전용 온라인 세미나, 선별된 이벤트와 워크숍 참석2
체크 표시
체크 표시
체크 표시
체크 표시
Oracle University의 e러닝 컨텐츠 라이브러리 액세스
체크 표시
체크 표시
체크 표시
체크 표시
Competency Center에서 제공하는 지침 학습 과정(GLP)을 통한 파트너별 교육 이용1
Cloud Services, 1-Click 제품 및 Oracle Database Appliance
체크 표시
체크 표시
체크 표시
Enablement 2.0 Boot Camp1
Cloud Services, 1-Click 제품 및 Oracle Database Appliance
체크 표시
체크 표시
체크 표시
Oracle University 제품 및 서비스에 대한 할인1
20%
25%
25%
25%
OPN 멤버쉽 가입 또는 갱신 후 처음 30일 이내에 구입하는 Oracle University 학습 크레딧에 대한 할인
35%
35%
35%
35%
OPN 멤버쉽 가입 또는 갱신 후 처음 30일 이내에 구입하는 SSCD(Self-Study CD)에 대한 할인
35%
35%
35%
35%
라이브 가상 강의(LVC)에 대한 할인1
20%
25%
30%
30%
시험 바우처에 대한 할인
20%
25%
25%
25%
무료 평가/시험 바우처1
 
2
6
6 -100(Worldwide 파트너)
개발 혜택 및 툴
Silver
Gold
Platinum
Diamond
테크놀로지 프로그램에 대한 개발 라이센스5
1-Click 제품 및 Oracle Database Appliance
에 나와 았음에 나와 았음에 나와 았음
Oracle Validated Integration
 
수수료 방식
할인
할인
SOA 기반의 Oracle Validated Integration1
 
수수료 방식
1개 포함
1개 포함
오라클 제품으로의 마이그레이션을 지원하기 위한 리소스(툴 키트, 워크벤치 및 타사 마이그레이션 제공업체)1
 
체크 표시
체크 표시
체크 표시
사전에 베타 프로그램 신청 가능
 
체크 표시
체크 표시
체크 표시
마케팅 혜택 및 툴
Silver
Gold
Platinum
Diamond
Oracle.com/events에 파트너 이벤트 게시 가능
 
전문화된 기술력과 솔루션을 갖춘 경우
체크 표시
체크 표시
오라클 파트너 브랜드 및 로고 사용1
체크 표시
체크 표시
체크 표시
체크 표시
Oracle.com에 소개1
 
 
체크 표시
체크 표시
Oracle Cloud Marketplace에 게시 신청4
체크 표시
체크 표시
우선 홍보 기회
우선 홍보 기회
마케팅 키트1
Cloud Services, 1-Click 제품 및 Oracle Database Appliance
체크 표시
체크 표시
체크 표시
오라클 출판물 광고비 할인(인쇄 및 디지털)
25%
35%
40%
50%
오라클 관련 정보를 심층적으로 다룬 뉴스레터 후원에 대한 할인 혜택
25%
35%
40%
50%
마케팅 캠페인을 위한 연락처 목록 액세스1
 
 
체크 표시
체크 표시
MDF(Marketing Development Funds) 신청1
 
 
체크 표시
체크 표시
전담 글로벌 파트너 마케팅 관리자
 
 
 
체크 표시
공동 고객 성공 사례에 대한 전문적인 개발1
 
체크 표시
체크 표시
체크 표시
Oracle Magazine의 파트너 뉴스 섹션에서 홍보1
 
 
체크 표시
체크 표시
홍보(PR) 지원 및 가이드라인1
체크 표시
체크 표시
공동 보도 자료
공동 보도 자료
Oracle Cloud Marketplace 또는 AppCloud Marketplace에 승인된 통합에 대한 보도 자료 게시4
체크 표시
체크 표시
체크 표시
체크 표시
Google 애드워즈 캠페인의 오라클 상표
체크 표시
체크 표시
체크 표시
체크 표시
JavaONE 및 Oracle OpenWorld에서 솔루션 소개1
체크 표시
체크 표시
체크 표시
체크 표시
오라클 고객을 직접 만나는 자리에서 연설1
 
 
체크 표시
체크 표시
오라클 내부용 활동에서 연설할 수 있는 기회4
 
 
체크 표시
체크 표시
판매 혜택 및 툴
Silver
Gold
Platinum
Diamond
각 자료실에 나와 있는 멤버쉽 레벨 및 리셀러 자격 조건 달성에 따라 공인된 오라클 제품 및 서비스 판매1
1-Click 제품 및 Oracle Database Appliance
체크 표시
체크 표시
체크 표시
오라클 프로그램 및 서비스 판매를 위한 OPN 멤버 할인 가격1
1-Click 제품 및 Oracle Database Appliance
체크 표시
체크 표시
체크 표시
세일즈 키트1
Cloud Services, 1-Click 제품 및 Oracle Database Appliance
체크 표시
체크 표시
체크 표시
OMM 정책에 따라 결정되는 Oracle Open Market Model(OMM) Resale Initiative를 통해 순 신규 영업 기회 등록1
체크 표시
체크 표시
체크 표시
체크 표시
OMM 정책에 따라 결정되는 OMM Referral Initiative를 통해 오라클 비즈니스를 추천하는 경우 보상1
체크 표시
체크 표시
체크 표시
체크 표시
Oracle OMM Non-commission Co-Sell Initiative를 통해 오라클 영업 기회를 등록하는 경우 인지도 강화1
체크 표시
체크 표시
체크 표시
체크 표시
고객에게 Oracle Financing 제공1
체크 표시
체크 표시
체크 표시
체크 표시
테크놀로지 및 애플리케이션 프로그램을 위한 데모 라이센스5
1-Click 제품 및 Oracle Database Appliance
에 나와 았음에 나와 았음에 나와 았음
Oracle PartnerNetwork Solutions Catalog를 통해 가시성 확보1
체크 표시
체크 표시
우선 배치 및 홍보
우선 배치 및 홍보
Oracle PartnerNetwork Solutions Catalog를 통해 영업 기회 창출1
체크 표시
체크 표시
체크 표시
체크 표시
내부용으로 사용할 오라클 프로그램 라이센스 구입 시 할인1
 
체크 표시
체크 표시
체크 표시
내부용으로 사용할 CRM On-Demand 프로그램 라이센스 구입 시 할인1
 
체크 표시
체크 표시
체크 표시
비즈니스 실무 및 가격 정보 교육1
체크 표시
체크 표시
체크 표시
체크 표시
국제적인 부패 방지 교육1
체크 표시
체크 표시
체크 표시
체크 표시
지원 혜택 및 툴
Silver
Gold
Platinum
Diamond
Oracle Solaris, Solaris Cluster 및 Solaris Studio 업데이트 및 패치 이용5
 
체크 표시
체크 표시
체크 표시
OPN SI(Support IdentifierI)를 통해 "My Oracle Support" 이용5
1-Click 제품 및 Oracle Database Appliance
체크 표시
체크 표시
체크 표시
소프트웨어 업그레이드 및 패치
(테크놀로지 및 애플리케이션 제품만 해당) - 현 오라클 지원 제품 및 릴리스5
1-Click 제품 및 Oracle Database Appliance
체크 표시
체크 표시
체크 표시
Partner Business Center의 지원 서비스
1-Click 제품 및 Oracle Database Appliance
체크 표시
체크 표시
체크 표시
특별 파트너 할인 가격으로 SR(Service Request) 패키지 구입1 (테크놀로지 및 애플리케이션 제품만 해당)
 
체크 표시
체크 표시
체크 표시
개발, 데모 및 통합 라이센스와 함께 사용할 무료 SR(Service Request)1
 
 
체크 표시
체크 표시
Enterprise Linux Basic Support 서비스 및 Oracle VM Premier Support 서비스를 통해 무료 SR을 사용하여 파트너의 Linux 및 Oracle VM 개발 시스템 지원1
 
 
체크 표시
체크 표시
Linux Basic Support 서비스 및 Oracle VM Premier Support 서비스를 위한 패치/업데이트를 다운로드하여 OPN 멤버의 Linux 및 Oracle VM 개발 시스템 지원
 
체크 표시
체크 표시
체크 표시
파트너의 Linux 및 Oracle VM 개발 시스템을 위한 Linux 및 Oracle VM 지원 서비스 가격 할인1
체크 표시
체크 표시
체크 표시
체크 표시
OCVS(Oracle Collaborative Vendor Support) 프로그램 이용1

 

체크 표시
체크 표시
체크 표시
파트너 내부용으로 사용할 ACS(Advanced Customer Services)에 대한 할인1
Linux 및 VM 전용
체크 표시
체크 표시
체크 표시
ACS(Advanced Customer Services) 파트너 팀에 대한 개별적 액세스1
 
 
체크 표시
체크 표시
ACS의 혜택에 대한 보완적 컨설팅1
 
 
체크 표시
체크 표시
ACS(Advanced Customer Services) 내부 웹 페이지에 대한 OPN 멤버 노출1
 
 
체크 표시
체크 표시
공동 캠페인을 위한 ACS(Advanced Customer Services)의 공동 마케팅 및 영업 기회 창출 지원1
 
 
체크 표시
체크 표시

유효한 ASFU/ESL 협약을 체결한 OPN 멤버를 위한 기술 지원 SR(Service Request) 및 확장된 지원 패키지8
 
체크 표시
체크 표시
체크 표시
전문화 프로그램, Oracle Validated Integration, Oracle Exastack Ready 및 Oracle Exastack Optimized와 관련된 혜택 및 툴
Silver
Gold
Platinum
Diamond
새로운 전문화 프로그램, Oracle Validated Integration, Oracle Exastack Ready 및 Oracle Exastack Optimized 알림 및 오리엔테이션 통지1
 
전문화 프로그램, Oracle Validated Integration, Oracle Exastack Ready, Oracle Exastack Optimized
전문화 프로그램, Oracle Validated Integration, Oracle Exastack Ready, Oracle Exastack Optimized
전문화 프로그램, Oracle Validated Integration, Oracle Exastack Ready, Oracle Exastack Optimized
안전한 OPN 전문화 리소스 센터 이용
 
전문화 프로그램
전문화 프로그램
전문화 프로그램
Oracle Exastack Optimized 로고
 
Oracle Exastack Optimized
Oracle Exastack Optimized
Oracle Exastack Optimized
OPN 전문화(Specialized) 로고1
 
전문화 프로그램
전문화 프로그램
전문화 프로그램
Oracle Exastack Ready 로고 
Oracle Exastack Ready
Oracle Exastack Ready
Oracle Exastack Ready
Oracle Validated Integration 로고 
Oracle Validated Integration
Oracle Validated Integration
Oracle Validated Integration
OPN 고급 전문화 프로그램 로고
 
고급 전문화 프로그램
고급 전문화 프로그램
고급 전문화 프로그램
뉴스레터, 웹 사이트, 광고 등으로 홍보1
 
전문화 프로그램, Oracle Validated Integration, Oracle Exastack Ready, Oracle Exastack Optimized
전문화 프로그램, Oracle Validated Integration, Oracle Exastack Ready, Oracle Exastack Optimized
전문화 프로그램, Oracle Validated Integration, Oracle Exastack Ready, Oracle Exastack Optimized
OPN Solutions Catalog에 우선 배치
 
전문화 프로그램, Oracle Validated Integration, Oracle Exastack Ready, Oracle Exastack Optimized
전문화 프로그램, Oracle Validated Integration, Oracle Exastack Ready, Oracle Exastack Optimized
전문화 프로그램, Oracle Validated Integration, Oracle Exastack Ready, Oracle Exastack Optimized
오라클의 내부 파트너 찾기 시스템에 우선 배치1
 
전문화 프로그램, Oracle Validated Integration, Oracle Exastack Ready, Oracle Exastack Optimized
전문화 프로그램, Oracle Validated Integration, Oracle Exastack Ready, Oracle Exastack Optimized
전문화 프로그램, Oracle Validated Integration, Oracle Exastack Ready, Oracle Exastack Optimized
내부 뉴스레터에 발표1
 
전문화 프로그램, Oracle Validated Integration, Oracle Exastack Ready, Oracle Exastack Optimized
전문화 프로그램, Oracle Validated Integration, Oracle Exastack Ready, Oracle Exastack Optimized
전문화 프로그램, Oracle Validated Integration, Oracle Exastack Ready, Oracle Exastack Optimized
무료 시험 바우처1
 
전문화 프로그램, Oracle Validated Integration, Oracle Exastack Ready, Oracle Exastack Optimized
전문화 프로그램, Oracle Validated Integration, Oracle Exastack Ready, Oracle Exastack Optimized
전문화 프로그램, Oracle Validated Integration, Oracle Exastack Ready, Oracle Exastack Optimized
보도 자료에 오라클 경영진의 인용구 사용1
 
전문화 프로그램, Oracle Validated Integration, Oracle Exastack Ready, Oracle Exastack Optimized
전문화 프로그램, Oracle Validated Integration, Oracle Exastack Ready, Oracle Exastack Optimized
전문화 프로그램, Oracle Validated Integration, Oracle Exastack Ready, Oracle Exastack Optimized
오라클 회의실 시설 이용1
 
전문화 프로그램, Oracle Validated Integration, Oracle Exastack Ready, Oracle Exastack Optimized
전문화 프로그램, Oracle Validated Integration, Oracle Exastack Ready, Oracle Exastack Optimized
전문화 프로그램, Oracle Validated Integration, Oracle Exastack Ready, Oracle Exastack Optimized
데모 서비스 이용1, 4
 
전문화 프로그램, Oracle Validated Integration, Oracle Exastack Ready, Oracle Exastack Optimized
전문화 프로그램, Oracle Validated Integration, Oracle Exastack Ready, Oracle Exastack Optimized  / 우선 이용
전문화 프로그램, Oracle Validated Integration, Oracle Exastack Ready, Oracle Exastack Optimized  / 우선 이용
무료 지원 SR(Service Request)
(테크놀로지 및 애플리케이션 제품만 해당)1, 3
 
전문화 프로그램, Oracle Validated Integration, Oracle Exastack Ready, Oracle Exastack Optimized
전문화 프로그램, Oracle Validated Integration, Oracle Exastack Ready, Oracle Exastack Optimized
전문화 프로그램, Oracle Validated Integration, Oracle Exastack Ready, Oracle Exastack Optimized
Enterprise Linux Basic Support 서비스 및 Oracle VM Premier Support 서비스를 통해 무료 지원 SR(Service Request)로 파트너의 Linux 및 Oracle VM 개발 시스템 지원1, 3
 
전문화 프로그램, Oracle Validated Integration, Oracle Exastack Ready, Oracle Exastack Optimized
전문화 프로그램, Oracle Validated Integration, Oracle Exastack Ready, Oracle Exastack Optimized
전문화 프로그램, Oracle Validated Integration, Oracle Exastack Ready, Oracle Exastack Optimized
제품 릴리스 준비 자료1
 
전문화 프로그램, Oracle Validated Integration, Oracle Exastack Ready, Oracle Exastack Optimized
전문화 프로그램, Oracle Validated Integration, Oracle Exastack Ready, Oracle Exastack Optimized
전문화 프로그램, Oracle Validated Integration, Oracle Exastack Ready, Oracle Exastack Optimized
구현 방법 이용1
 
전문화 프로그램, Oracle Validated Integration, Oracle Exastack Ready, Oracle Exastack Optimized
전문화 프로그램, Oracle Validated Integration, Oracle Exastack Ready, Oracle Exastack Optimized
전문화 프로그램, Oracle Validated Integration, Oracle Exastack Ready, Oracle Exastack Optimized



위에 열거된 OPN 혜택은 OPN 정책, OPN 협약 및 해당하는 모든 부록 또는 개정 조항의 조건에 의거하여 OPN 멤버에게 제공됩니다.  지역별 제한 사항에 따라 혜택의 제공 여부가 다를 수 있습니다.  혜택이 오라클의 독자적인 판단에 따라 제공된다고 이 혜택 표에 나와 있는 경우 해당 혜택의 제공 여부에 관한 오라클의 결정이 최종 결정이 됩니다.  

미국 및 캐나다:  미국 및 캐나다 지역에서 활동하는 파트너는 전문화 자격을 얻기 위해 공공 부문 기관과의 거래를 포함시킬 수 있습니다. 그러나 공공 부문 기관과의 거래는 거래 건수, 매출, 기타 세일즈 기반의 메트릭 등을 토대로 제공되는 전문화 영역 또는 Oracle PartnerNetwork 멤버쉽과 관련된 혜택(전문화 상태 및 관련 로고 사용 이외)을 결정하는 데는 포함되지 않습니다. 공공 부문은 정부, 입법/의사결정 기구, 사법기관, 정부대행기관, 정부부처, 국가/지방/시 단위의 국가행정기관, 정부가 관리하거나 대부분의 지분을 소유하고 있는 공기업, 정당이나 정치조직 등과 같은 공공기구나 재단, 국제 적십자사나 UN, 세계은행 등과 같은 국제기구, 공립 대학교, 공립 초/중/고등학교, 공공 보건 기관 등의 공공 부문 기관 등을 말합니다. 전문화된 기술력과 솔루션을 갖춘 오라클 파트너에게 제공되는 혜택과 툴의 제공 여부는 OPN 정책에 따라 결정됩니다. 

Oracle PartnerNetwork 멤버는 혜택 제공 중지 정책을 반드시 검토하십시오. 

오라클은 독자적인 판단에 따라 언제든지 OPN 혜택 표 중 잘못되거나 누락된 부분을 수정할 수 있는 권리를 갖습니다. 

2009년 11월 또는 그 이후에 OPN 전문화 프로그램으로 마이그레이션하지 않은 파트너는http://www.oracle.com/ocom/groups/public/@opnpublic/documents/webcontent/019737.pdf에 명시된 혜택을 받을 수 있습니다. 

각주:

  1. 본 혜택은 미국 정부 기관(연방, 주 및 지역 정부, 공익 사업체 및 고등 교육 기관 포함) OPN 멤버에게는 제공되지 않습니다.
  2. 미국 정부 기관(연방, 주 및 지역 정부, 공익 사업체 및 고등 교육 기관 포함) OPN 멤버는 본 혜택을 이용하기 전에 관할 법률 또는 윤리 담당자의 승인 증명을 Political Compliance의 Oracle Director에게 제공해야 합니다.
  3. 이 혜택은 OPN 정책에 따라 (a) 공공 부문 기관과의 거래 및/또는 (b) 공공 부문 기관의 고객 레퍼런스를 사용하여 비즈니스 조건을 충족하는 방식으로 전문화된 기술력과 솔루션을 갖춘 파트너 입지를 확보한 미국 또는 캐나다의 OPN 멤버에게는 제공되지 않습니다.
  4. 이러한 혜택을 이용하려면 추가 조건을 충족해야 합니다.  조건에 대한 자세한 설명을 검토하십시오.
  5. 이 혜택은 MOS(My Oracle Support)에 적용되지 않습니다. 자세한 내용은 오라클 소프트웨어 기술 지원 정책과 오라클 하드웨어 및 시스템 지원 정책을 참조하십시오.http://oracle.com/contracts.


reference : http://www.oracle.com/partners/campaign/specialized-benefits-036151-ko.html


'Oracle' 카테고리의 다른 글

Oracle DB Link 설정 갯수 제한  (0) 2017.10.18
ORA-609 Error (11.1.0.6 to 11.2.0.3)  (0) 2014.02.12
Oracle 11g Enterprise Option 내용  (0) 2014.02.12
Oracle Trim Function  (0) 2013.11.15
Benefits and consequences of the NOLOGGING option  (0) 2013.11.01
:     

TISTORY에 Login하려면 여기를 누르세요.


ORA-609 Error (11.1.0.6 to 11.2.0.3)

Oracle 2014. 2. 12. 20:34


즐겨찾기에 추가하려면 누르십시오. 맨 아래로맨 아래로

2013. 8. 13TROUBLESHOOTING
이 문서 평가 이 문서에 대한 링크를 전자 메일로 보냅니다. 새 창에서 문서 열기 인쇄 가능한 페이지

이 문서에서

목적
진단 절차
참고

 

적용 대상:

Oracle Net Services - 버전 11.1.0.6 to 11.2.0.3 [릴리즈 11.1 to 11.2]
이 문서의 내용은 모든 플랫폼에 적용됩니다.

목적

ORA-609 에러는 alert.log 에 보고된다. 이 에러는 간헐적으로 발생하고 몇일 동안 발생하지 않을 수도 있다. 

Mon Oct 12 10:03:39 2009
Errors in file e:\app\oracle\diag\rdbms\center\center\trace\center_ora_7464.trc:
ORA-00609: could not attach to incoming connection
ORA-12537: TNS:connection closed
ORA-609 : opiodr aborting process unknown ospid (2436_7464)


데이타베이스 서버에 지역적으로 발생하는 sqlnet.log 화일에 이 에러가 발생할 수 있다.:

Fatal NI connect error 12537, connecting to:
(LOCAL=NO)

VERSION INFORMATION:
TNS for 64-bit Windows: Version 11.1.0.7.0 - Production
Oracle Bequeath NT Protocol Adapter for 64-bit Windows: Version 11.1.0.7.0 - Production
Windows NT TCP/IP NT Protocol Adapter for 64-bit Windows: Version 11.1.0.7.0 - Production
Time: 12-OCT-2009 10:03:39
Tracing to file: E:\app\oracle\product\11.1.0\db_1\NETWORK\trace\svr1_7464.trc
Tns error struct:
ns main err code: 12537
TNS-12537: TNS:connection closed
ns secondary err code: 12560
nt main err code: 0
nt secondary err code: 0
nt OS err code: 0


listener.log에는 명확한 에러 없이 접속이 맺어졌다는 것을 보여준다. 이것은 리스너가 접속을 서버 프로세스에게 전달해 준 이후에 접속이 실패했기 때문이다.

12-OCT-2009 10:03:39 * (CONNECT_DATA=(SID=ORCL)) * (ADDRESS=(PROTOCOL=tcp)(HOST=123.456.1.123)(PORT=3158)) * establish * ORCL * 0
12-OCT-2009 10:03:39 * (CONNECT_DATA=(SID=ORCL)) * (ADDRESS=(PROTOCOL=tcp)(HOST=123.456.1.123)(PORT=3159)) * establish * ORCL * 0


아래의 Oracle Net 서버 트레이스화일에서 주목할 부분은 화일이름 "svr_7464.trc"이다.

여기서 문제는 접속 패킷을 클라이언트로부터 받을 때 나타난다. ORA-609 에러는 Oracle Net 트레이스에는 나타나지 않는다. ORA-609 에러는 트레이스 snippet에서 ns=12537 을 동반하면서 발생한다.
[000001 12-OCT-2009 10:03:39:116] nscon: doing connect handshake...
[000001 12-OCT-2009 10:03:39:116] nscon: recving a packet
[000001 12-OCT-2009 10:03:39:116] nsprecv: entry
[000001 12-OCT-2009 10:03:39:116] nsprecv: reading from transport...
[000001 12-OCT-2009 10:03:39:116] nttrd: entry
[000001 12-OCT-2009 10:03:39:163] nttrd: exit
[000001 12-OCT-2009 10:03:39:163] ntt2err: entry
[000001 12-OCT-2009 10:03:39:163] ntt2err: Read unexpected EOF ERROR on 7104
[000001 12-OCT-2009 10:03:39:163] ntt2err: exit
[000001 12-OCT-2009 10:03:39:163] nsprecv: error exit
[000001 12-OCT-2009 10:03:39:163] nserror: entry
[000001 12-OCT-2009 10:03:39:163] nserror: nsres: id=0, op=68, ns=12537, ns2=12560; nt[0]=507, nt[1]=0, nt[2]=0; ora[0]=0, ora[1]=0, ora[2]=0
[000001 12-OCT-2009 10:03:39:163] nscon: error exit
[000001 12-OCT-2009 10:03:39:163] nsdo: nsctxrnk=0
[000001 12-OCT-2009 10:03:39:163] nsdo: error exit
[000001 12-OCT-2009 10:03:39:163] nsinh_hoff: error recving request

Alert log와 Oracle Net 트레이스를 통해서 ORA-609 에러를 트레이스하는 다른 방법을 보여주는데, 핸드쉐이크하는 동안에 이슈가 나타나는 것을 보여준다.

아래는 Alert log를 보여준다.:

Mon Dec 21 15:52:15 2009
ORA-609 : opiodr aborting process unknown ospid (21631120_1)

 

[21-DEC-2009 15:52:15:025] nscon: sending NSPTAC packet
[21-DEC-2009 15:52:15:025] nspsend: entry

[21-DEC-2009 15:52:15:031] ntt2err: Read unexpected EOF ERROR on 14
[21-DEC-2009 15:52:15:031] ntt2err: exit
[21-DEC-2009 15:52:15:031] nsprecv: error exit
[21-DEC-2009 15:52:15:031] nserror: entry
[21-DEC-2009 15:52:15:031] nserror: nsres: id=0, op=68, ns=12537, ns2=12560; nt[0]=507, nt[1]=0, nt[2]=0; ora[0]=0, ora[1]=0, ora[2]=0
[21-DEC-2009 15:52:15:031] nsrdr: error exit
[21-DEC-2009 15:52:15:031] nsdo: nsctxrnk=0
[21-DEC-2009 15:52:15:031] nsdo: error exit
[21-DEC-2009 15:52:15:031] nsnareceive: error exit
[21-DEC-2009 15:52:15:031] nserror: entry
[21-DEC-2009 15:52:15:031] nserror: nsres: id=0, op=68, ns=12537, ns2=12532; nt[0]=0, nt[1]=0, nt[2]=0; ora[0]=0, ora[1]=0, ora[2]=0
[21-DEC-2009 15:52:15:031] nacomrc: received 12637 bytes
[21-DEC-2009 15:52:15:031] nacomrc: failed with error 12637
[21-DEC-2009 15:52:15:031] nacomrc: exit
[21-DEC-2009 15:52:15:031] na_receive_packet: failed with error 12637
[21-DEC-2009 15:52:15:031] na_receive_packet: exit
[21-DEC-2009 15:52:15:031] na_server: failed with error 12637


인스턴스에 지역적인 sqlnet.log를 통해서 일치하는 에러 메시지를 발견할 수 있다.

다음은 그 예를 보여준다.

Fatal NI connect error 12537, connecting to: 
(LOCAL=NO) 

VERSION INFORMATION: 
TNS for Solaris: Version 11.2.0.2.0 - Production 
Oracle Bequeath NT Protocol Adapter for Solaris: Version 11.2.0.2.0 - Production 
TCP/IP NT Protocol Adapter for Solaris: Version 11.2.0.2.0 - Production 
Time: 21-DEC-2009 15:52:15 
Tracing not turned on. 
Tns error struct: 
ns main err code: 12537 
TNS-12537: TNS:connection closed 
ns secondary err code: 12560 
nt main err code: 0 
nt secondary err code: 0 
nt OS err code: 0

 

Oracle Net 서버 트레이스 안에 event에 매치되는 것을 보여준다.

진단 절차

1. listener.log로부터 접속을 맺는 클라이언트를 찾아낸다.
Alert log는 다음과 유사한 ORA-609 에러를 나타낸다. :

Mon Oct 05 12:41:49 2009
ORA-609 : opiodr aborting process unknown ospid (21131406_1)

Listener.log로 가서 이 접속에 일치하는 엔트리를 찾아본다. Listener.log 내 엔트리는 아래의 예처럼 보일 것이다.: 

05-OCT-2009 12:41:49 * (CONNECT_DATA=(SID=orcl)) *
(ADDRESS=(PROTOCOL=tcp)(HOST=sample.com)(PORT=1234)) * establish * orcl * 0

위 예제에서 클라이언트 주소값이 "sample.com"임을 주목하여야 한다. 한가지 옵션은 그 사이트에서 몇 개의 클라이언트를 위치시키고, 클라이언트 트레이싱을 활성화하는 것이다. 클라이언트 사이드에서 $ORACLE_HOME/network/log 화일을 확인해야 하고 동일한 timestamp 시점에 발생한 timeout 에러에 대해 명시적으로 확인해야 한다.

 

2. Oracle Net 트레이싱을 클라이언트 레벨 16으로 걸어서 확인한다. 클라이언트 SQLNET.ORA 화일 안에 아래와 같이 추가한다.

DIAG_ADR_ENABLED=off                  # Diable ADR if version 11g

TRACE_LEVEL_CLIENT = 16               # Enable level 16 trace 
TRACE_TIMESTAMP_CLIENT = ON           # Set timestamp in the trace files
TRACE_DIRECTORY_CLIENT = <DIRECTORY>  # Control trace file location 

TRACE_FILELEN_CLIENT =<n>     #Control size of trace set in kilobytes eg 20480 
TRACE_FILENO_CLIENT =<n>      #Control number of trace files per process

만일 접속 모델이 JDBC Thin이라면 클라이언트 사이드의 Java 트레이싱이 필요하므로, Document 793415.1 How to Perform the Equivalent of SQL*Net Client Tracing with Oracle JDBC Thin Driver 를 참고하도록 한다.
만일 11.2 JDBC Thin 클라이언트가 사용된다면 다음 노트가 활용될 수 있다. Document 1050942.1 How to Trace the Network Packets Exchanged Between JDBC and the RDBMS in Release 11.2

3. Oracle Net 트레이싱을 서버 사이드 레벨 16으로 걸어서 확인한다. 클라이언트 SQLNET.ORA 화일 안에 아래와 같이 추가한다.

DIAG_ADR_ENABLED=off                  # Diable ADR if version 11g
TRACE_LEVEL_SERVER = 16               # Enable level 16 trace
TRACE_TIMESTAMP_SERVER = ON           # Set timestamp in the trace files
TRACE_DIRECTORY_SERVER = <DIRECTORY>  # Control trace file location

TRACE_FILELEN_SERVER =<n>   #Control size of trace set in kilobytes eg 20480 
TRACE_FILENO_SERVER =<n>       #Control number of trace files per process


트레이싱을 순환하게 되면 생성되는 트레이스 화일의 갯수와 크기를 조절할 수 있다.

TRACE_FILELEN 파라미터는 트레이스 화일의 크기를 셋팅하기 위해 사용된다.
TRACE_FILENO 파라미터는 프로세스 당 트레이스 화일의 갯수를 셋팅하기 위해 사용된다.

중요 노트: 

SQLNET.ORA 화일은 프로세스 생성 시 단 한번 읽혀진다. RDBMS 백그라운드 프로세스와 SHARED 서버 디스패처는 sqlnet.ora 화일의 파라미터 변경이 반영될 수 있도록 재기동되어야 한다. 프로세스가 트레이싱되기 위해 기동이 되었다면 트레이스는 프로세스가 멈출 때까지 중단되지 않는다.  

Oracle Net 서버 트레이싱을 활성화하면 짧은 시간 동안에 많은 양의 트레이스를 생성시킬 수 있다. 비록 순환적인 트레이싱을 하더라도 각 프로세스는 TRACE_FILENO_SERVER 에 지정한 갯수 만큼의 트레이스를 생성시킬 것이다. 최적의 트레이싱 워크플로우는 트레이싱을 활성화하고 문제를 재현하고 트레이싱을 비활성화시키는 것이다. 그러므로, 트레이싱하는 시간의 양을 제한하는 것이 활성화된다.
TRACE_FILENO_SERVER 를 1로 셋팅하고, TRACE_FILELEN_SERVER 를 20480로 셋팅하게 되면 프로세스 당 생성되는 트레이스의 양을 낮춰주기 위한 솔루션이다. 이렇게 셋팅하면 트레이스 화일이 overwrite되고, failure가 발생한 시점의 중요한 데이타를 유실할 수 있음을 명심해야 한다.


4. Errorstack: 에러가 났을 때를 대비해 errorstack 트레이스를 설정한다. 이것은 Oracle Net 클라이언트 트레이스를 캡춰하는 것이 쉽지 않을 때 적용한다.

SQL> alter session set events '609 errorstack(3)';

에러가 재현되는 동안 몇 개의 트레이스를 수집한다.

SQL> alter session set events '609 off';


만일 에러를 만났을 때에는 다음을 수행한다.:

  • 서버에서 SQLNET.LOG 화일을 리뷰한다.
  • ALERT. LOG 내에 timestamp를 비교하면서 일치하는 엔트리를 찾아본다. 
  • SQLNET.LOG 화일 내의 엔트리로부터 Oracle Net server trace 이름을 "Tracing to file"이라는 라인에서 찾을 수 있다. 
  • server 트레이스를 열어서 Connection ID 값에 대해서 grep 또는 찾아본다.
  • 그런 다음, 같은 Connection ID 값에 대해서 클라이언트 트레이스 client 디렉토리를 찾아본다.

매칭되는 클라이언트와 서버 트레이스를 찾게 될 것이다.
이 절차는 이 문서에 자세히 소개되어 있다. Document 374116.1 How to Match Oracle Net Client and Server Trace Files

리뷰를 위해 다음을 업로드한다.:

  • 매칭되는 Oracle Net 클라이언트와 서버 트레이스 또는 매칭되는 Javanet 과 서버 트레이스 화일.
  • ALERT.LOG 와 LISTENER.LOG 화일. (전체의 로그 화일이 아니라 이슈를 커버하는 시간 대의 로그만 있으면 됨)
  • 서버 ORACLE_HOME/network/log 아래의 SQLNET.LOG 화일
  • errorstack 트레이스 화일.

알려진 이슈들:

  • 종종 ORA-609 에러가 접속이 완전히 이루어지기 전에 클라이언트가 접속이 끊기면서 발생한다. LISTENER.ORA 안에 있는 Timeout 파라미터 INBOUND_CONNECT_TIMEOUT_<listener_name> 과  SQLNET.ORA 화일 안에 있는 SQLNET.INBOUND_CONNECT_TIMEOUT 파라미터를 리뷰할 필요가 있다. 기본 시간인 60초를 사용한다면(명시적인 셋팅 없이), 이 파라미터는 증가시킬 필요가 있다.
  • 데이타베이스가 수행 중인 서버 머신에서 네트워크 파라미터 셋팅을 확인한다. 셋팅 값이 모두 맞게 되었는지, DNS 서버가 가용한 상태인지 확인한다.
  • 서버 플랫폼이 Microsoft Windows인 경우, 각 서비스가 동일한 계정으로 정상 기동되었는지 데이타베이스와 TNS 리스너를 위한 Windows 서비스를 확인해야 한다.



REFERENCES

NOTE:793415.1 - How to Perform the Equivalent of SQL*Net Client Tracing with Oracle JDBC Thin Driver
NOTE:1050942.1 - How to Trace the Network Packets Exchanged Between JDBC and the RDBMS in Release 11.2
NOTE:609.1 - ORA-609 TNS-12537 and TNS-12547 in 11g Alert.log

'Oracle' 카테고리의 다른 글

Oracle DB Link 설정 갯수 제한  (0) 2017.10.18
Oracle PartnerNetwork(OPN) 혜택  (0) 2015.04.08
Oracle 11g Enterprise Option 내용  (0) 2014.02.12
Oracle Trim Function  (0) 2013.11.15
Benefits and consequences of the NOLOGGING option  (0) 2013.11.01
:     

TISTORY에 Login하려면 여기를 누르세요.


Oracle 11g Enterprise Option 내용

Oracle 2014. 2. 12. 16:14

 

  • V$Option의 내용 
    PARAMETER VALUE
    Partitioning TRUE
    Objects TRUE
    Real Application Clusters FALSE
    Advanced replication TRUE
    Bit-mapped indexes TRUE
    Connection multiplexing TRUE
    Connection pooling TRUE
    Database queuing TRUE
    Incremental backup and recovery TRUE
    Instead-of triggers TRUE
    Parallel backup and recovery TRUE
    Parallel execution TRUE
    Parallel load TRUE
    Point-in-time tablespace recovery TRUE
    Fine-grained access control TRUE
    Proxy authentication/authorization TRUE
    Change Data Capture TRUE
    Plan Stability TRUE
    Online Index Build TRUE
    Coalesce Index TRUE
    Managed Standby TRUE
    Materialized view rewrite TRUE
    Database resource manager TRUE
    Spatial TRUE
    Automatic Storage Management FALSE
    Export transportable tablespaces TRUE
    Transparent Application Failover TRUE
    Fast-Start Fault Recovery TRUE
    Sample Scan TRUE
    Duplexed backups TRUE
    Java TRUE
    OLAP Window Functions TRUE
    Block Media Recovery TRUE
    Fine-grained Auditing TRUE
    Application Role TRUE
    Enterprise User Security TRUE
    Oracle Data Guard TRUE
    Oracle Label Security FALSE
    OLAP TRUE
    Basic Compression TRUE
    Join index TRUE
    Trial Recovery TRUE
    Data Mining TRUE
    Online Redefinition TRUE
    Streams Capture TRUE
    File Mapping TRUE
    Block Change Tracking TRUE
    Flashback Table TRUE
    Flashback Database TRUE
    Transparent Data Encryption TRUE
    Backup Encryption TRUE
    Unused Block Compression TRUE
    Oracle Database Vault FALSE
    Result Cache TRUE
    SQL Plan Management TRUE
    SecureFiles Encryption TRUE
    Real Application Testing TRUE
    Flashback Data Archive TRUE
    DICOM TRUE
    Active Data Guard TRUE
    Server Flash Cache TRUE
    Advanced Compression TRUE
    XStream TRUE
    Deferred Segment Creation TRUE
:     

TISTORY에 Login하려면 여기를 누르세요.


Oracle Trim Function

Oracle 2013. 11. 15. 18:39

TRIM

Syntax

Description of trim.gif follows
Description of the illustration trim.gif

Purpose

TRIM enables you to trim leading or trailing characters (or both) from a character string. If trim_character or trim_source is a character literal, then you must enclose it in single quotation marks.

  • If you specify LEADING, then Oracle Database removes any leading characters equal to trim_character.

  • If you specify TRAILING, then Oracle removes any trailing characters equal to trim_character.

  • If you specify BOTH or none of the three, then Oracle removes leading and trailing characters equal to trim_character.

  • If you do not specify trim_character, then the default value is a blank space.

  • If you specify only trim_source, then Oracle removes leading and trailing blank spaces.

  • The function returns a value with datatype VARCHAR2. The maximum length of the value is the length of trim_source.

  • If either trim_source or trim_character is null, then the TRIM function returns null.

Both trim_character and trim_source can be VARCHAR2 or any datatype that can be implicitly converted to VARCHAR2. The string returned is of VARCHAR2 datatype if trim_source is a character datatype and a LOB if trim_source is a LOB datatype. The return string is in the same character set as trim_source.

Examples

This example trims leading zeros from the hire date of the employees in the hr schema:

SELECT employee_id,
      TO_CHAR(TRIM(LEADING 0 FROM hire_date))
      FROM employees
      WHERE department_id = 60
      ORDER BY employee_id;

EMPLOYEE_ID TO_CHAR(T
----------- ---------
        103 3-JAN-90
        104 21-MAY-91
        105 25-JUN-97
        106 5-FEB-98
        107 7-FEB-99


LTRIM

Syntax

Description of ltrim.gif follows
Description of the illustration ltrim.gif

Purpose

LTRIM removes from the left end of char all of the characters contained in set. If you do not specify set, then it defaults to a single blank. If char is a character literal, then you must enclose it in single quotation marks. Oracle Database begins scanning char from its first character and removes all characters that appear in set until reaching a character not in set and then returns the result.

Both char and set can be any of the datatypes CHARVARCHAR2NCHARNVARCHAR2CLOB, or NCLOB. The string returned is of VARCHAR2 datatype if char is a character datatype, NVARCHAR2 if char is a national character datatype, and a LOB if char is a LOB datatype.


Examples

The following example trims the redundant first word from a group of product names in the oe.products table:

SELECT product_name, LTRIM(product_name, 'Monitor ') "Short Name"
   FROM products
   WHERE product_name LIKE 'Monitor%';

PRODUCT_NAME         Short Name
-------------------- ---------------
Monitor 17/HR        17/HR
Monitor 17/HR/F      17/HR/F
Monitor 17/SD        17/SD
Monitor 19/SD        19/SD
Monitor 19/SD/M      19/SD/M
Monitor 21/D         21/D
Monitor 21/HR        21/HR
Monitor 21/HR/M      21/HR/M
Monitor 21/SD        21/SD
Monitor Hinge - HD   Hinge - HD
Monitor Hinge - STD  Hinge - STD

RTRIM

Syntax

Description of rtrim.gif follows
Description of the illustration rtrim.gif

Purpose

RTRIM removes from the right end of char all of the characters that appear in set. This function is useful for formatting the output of a query.

If you do not specify set, then it defaults to a single blank. If char is a character literal, then you must enclose it in single quotation marks. RTRIM works similarly to LTRIM.

Both char and set can be any of the datatypes CHARVARCHAR2NCHARNVARCHAR2CLOB, or NCLOB. The string returned is of VARCHAR2 datatype if char is a character datatype, NVARCHAR2 if expr1 is a national character datatype, and a LOB if char is a LOB datatype.

Examples

The following example trims all the right-most occurrences of period, slash, and equal sign from a string:

SELECT RTRIM('BROWNING: ./=./=./=./=./=.=','/=.') "RTRIM example" FROM DUAL;
 
RTRIM exam
----------
BROWNING:

reference : Oracle® Database SQL Language Reference - Oracle11gR1


그동안 너무 RTRM과 LTRIM만 사용한듯.... 

:     

TISTORY에 Login하려면 여기를 누르세요.


Certification Information for Oracle Database on Microsoft Windows x64 (64-bit)

Oracle 2013. 8. 29. 12:34

Oracle DBMS의 Version별 OS Platform Certification 정보입니다.

 

Oracle 12c는 Windows 2003이 아예 빠져 버렸네요. 아무래도 Windows 2003의 지원 정책 때문인 것으로 사료됩니다.

 

 

12.1

11.2

11.1

10.2

  • Do not install Oracle Database 10g Release 2 on Windows Server 2008, Server 2008 R2, 7, nor Vista using the 10.2.0.1 version. You must use the 10.2.0.4 (64-bit) x64 version specifically created for these operating systems. After installation, for Windows 7 and Windows Server 2008 R2, patchset 10.2.0.5 or higher must be applied.  For more information on installation see the release notes sections on the installation media:

 

출처 : Oracle Support - 문서 ID 1307195.1 발췌

:     

TISTORY에 Login하려면 여기를 누르세요.


[Oracle] Current Interoperability Support Situation

Oracle 2013. 8. 29. 12:28

Current Interoperability Support Situation

The matrix below summarizes client and server combinations that are supported for the most commonly used product versions. A full matrix appears at the end of this document.

New interoperability problems will only be investigated if BOTH releases involved are covered by a valid support contract at the time that the issue is reported .
eg:

A 11.1.0 client to an 11.2.0 server issue requires the customer to have a valid Extended Support contract for the 11.1.0 client in order for Oracle to investigate it.

Client
Version
Server Version
12.1.0 11.2.0 11.1.0 10.2.0 10.1.0 9.2.0
12.1.0 Yes Yes ES ES #7 No #3 No #3
11.2.0 Yes Yes ES ES #7 No Was #5
11.1.0 ES ES ES ES #7 Was #6 Was #5
10.2.0 ES #7 ES #7 ES #7 Was Was Was #5
10.1.0(#4) No Was #6 Was #6 Was Was Was
9.2.0 No#8 Was #5 Was #5 Was #5 Was Was

Key:
Yes Supported
LES Limited extended support previously applied to 9.2 releases but has now ended.
ES Supported but fixes only possible for customers with Extended Support .
Was Was a supported combination but one of the releases is no longer covered by any of Premier Support , Primary Error Correct support , Extended Support nor Extended Maintenance Support so fixes are no longer possible.
No Has never been Supported
Specific Notes:
  • #1 - See Note:207319.1
  • #2 - An ORA-3134 error is incorrectly reported if a 10g client tries to connect to an 8.1.7.3 or lower server. See Note:3437884.8 .
  • #3 - An ORA-3134 error is correctly reported when attempting to connect to this version.
  • #4 - There are problems connecting from a 10g client to 8i/9i where one is EBCDIC based. See Note:3564573.8
  • #5 - For connections between 10.2 (or higher) and 9.2 the 9.2 end MUST be at 9.2.0.4 or higher. Connections between 10.2 (or higher) and 9.2.0.1, 9.2.0.2 or 9.2.0.3 have never been supported.
  • #6 - For connections between 11.1 (or higher) database server and 10.1 / 10.2 database server across a database link the 10g end MUST be at 10.1.0.5 / 10.2.0.2 (or higher) respectively in order to use PLSQL between those versions. (This does not apply to normal 11g clients to 10g database server only server to server and a few very specific client products, such as Oracle Forms). See Note:4511371.8 for more details.
  • #7 - For database link connections between 11.1 (or higher) and 10.2 the 10g end MUST be at 10.2.0.2 (or higher) in order to use PLSQL between those versions. See Note:4511371.8 for more details.
  • #8 - Attempting to connect from 9.2 to 12.1 will fail with an "ORA-28040: No matching authentication protocol" error.
General Notes:
  1. For database links between different Oracle versions connections must be supported in BOTH directions in the matrix above.
    eg: As 11.2 -> 10.1 is not supported then database links between these version are not supported in either direction.
  2. Unsupported combinations may appear to work but can encounter errors for particular operations. The fact that they appear to work should not be relied upon - issues on unsupported combinations will not be investigated.
  3. Since new database servers are compatible with a limited set of older OCI clients, it may not be necessary to upgrade the client software when upgrading the database. However, some new features may not work without upgrading the client software. For example, an Oracle 10.2 client is able to connect to an 11.2 database, but is not able to take advantage of newer features such as Client Result Cache (introduced in 11.1).
  4. Oracle Applications , or other Oracle products, may have supported configurations not listed in the matrix above.
  5. The matrix above also applies between different platforms and between 32/64 bit releases of Oracle client / server except where any Oracle platform desupport notice indicates otherwise .
  6. Unix BEQUEATH (BEQ) connections are NOT supported between different releases. eg: Client 10.2 is not supported to make an Oracle Net connection to a 11.2 server using the BEQ protocol adapter regardless of the interoperability support listed above. See Note:364252.1 for more details.

 

Oracle Client Version별로 Oracle DB Server Version에 Support하는데 있어서 상호 호환성 여부를 정리한 자료입니다.

 

출처 : Oracle Support

:     

TISTORY에 Login하려면 여기를 누르세요.


Oracle Database 12c : Tom’s Top 12 Things About the Latest Generation of Database Technology

Oracle 2013. 8. 21. 18:14

Oracle Database 12c : Tom’s Top 12 Things About the Latest Generation of Database Technology

Tom’s Top 12 Things About the Latest Generation of Database Technology
  • Functions (and procedures used within those functions) can be defined in the WITH clause. Performance boost compared to regular unit defintion. Pragma to allow regular functions to benefit from these performance benefits.
  • Default value of column can use a sequence.nextval.
  • Identity columns : Multiple levels of control of how it is used. Can use simple or more complex syntax.
  • Metadata only default of optional columns. Previous versions this was possible only for mandatory columns.
  • VARCHAR2(32767) in the database. Less than 4K is stored inline. More than 4K is stored out of line, similar to LOB, but simpler. Not available by default.
  • Top-N now using Row limiting clause eg. “OFFSET 10 ROWS FETCH FIRST 10 ROWS ONLY”. Similar to mySQL syntax.
  • Row pattern matching. Quite a lot of new analytic syntax here.
  • Partitioning Improvements:
    - Asynchronous Global Index maintenance for DROP and TRUNCATE. Command returns instantly, but index cleanup happens later.
    - Cascade for TRUNCATE and EXCHANGE partition.
    - Multiple partition operations in a single DDL
    - Online move of a partition(without DBMS_REDEFINTIION).
    - Interval  + Reference Partitioning.
  • Adaptive Execution Plans:
    - If the optimizer notices the cardinality is not what is expected, so the current plan is not optimal, it can alter subsequent plan operations to take allow for the differences between the estimated and actual cardinalities.
    - The stats gathered during this process are persisted as Adaptive Statistics, so future decisions can benefit from this.
    - You will see STATISTICS COLLECTOR steps in the SQL Trace. Can make the trace harder to read as it can contain information about the expected plan and the actual plan.
  • Enhanced Statistics:
    -  Some dynamic sampling operations are persistent, so they are not lost when the SQL is aged out.
    - Hybrid histograms. When the number of distinct values is greater than 254, “almost popular” values can get “lost” in the mix. A single bucket can now store the popularity of than value, effectively increasing the number of buckets, without actually increasing it.
    - Possible the max number of buckets can be increased based on a parameter. (demo grounds)
    - Statistics gathered during loads. CTAS and INSERT … SELECT automatically compute stats.
    - Global temporary tables can have “session private statistics”. Previously, we had one-size-fits-all.
  • Temporary Undo (ALTER SESSION SET temp_undo_enabled=true):
    - UNDO for temporary tables can now be managed in TEMP, rather than the regular UNDO tablespace.
    - Reduces contents of regular UNDO, allowing better flashback operations.
    - Reduces the size of redo associated with recovering the regular UNDO tablespace.
  • Data Optimization:
    - Information Lifecycle Management: Uses heat map. Colder data is compressed and moved to lower tier storage. Controlled by declarative DDL policy.
  • Transaction Guard:
    - If a failure happens, your application may not know the actual status of a transaction. If it was successful, issuing it again could cause a duplication transaction.
    - In these cases, you can mark a transaction with an “unknown” state (as far as the application is concerned) as failed, so even though they may have been successful, it will never be considered, or recovered. You’ve guaranteed the outcome.
  • Pluggable database:
    - Oracle provided metadata and data is kept in the container database (CDB).
    - User metadata and data is kept in the plugable database (PDB) .
    - One container can have multiple plugable databases.
    - No namespace clashes. Allows public synonyms and database links at the PDB level, rather than the CBD level.
    - Cloning is quick and simple as only user metadata and data needs to be cloned.
    - Upgrades have the potential to just unplug from old version (12cR1) to new version (12cR2).
    - Reduce total resource usage is reduced on lower use databases.

Oracle Database Optimizer: An Insider’s View of How the Optimizer Works
Oracle database 12c is the first step on the way to making an adaptive, or self-learning optimiser.
Alternative subplans are precomputed and stored in the cursor, so no new hard parsing will be needed as part of the adaption of an already executing plan. Statistics collectors are included in the plan execution. If the collectors cross a threshold, the plan might switch during execution from a nested loops to a hash join.
You can see information about the adaptive actions that have occurred using the DBMS_XPLAN package, with the format of “+all_dyn_plan +adaptive”. If a plan has been adapted, you will see it indicated in the  v$sql.is_resolved_dynamic_plan column.
If this functionality scares you, you can turn it off using the OPTIMIZER_APADPTIVE_REPORTING_ONLY parameter. Same work is done, but no actual adaptive action is taken.
During parallel execution, collectors can influence the distribution method (HASH > Distribution). Shown in the plan as the HYBRID HASH operations.
Dynamic statistics replace dynamic sampling. The resulting stats are cached as SHARED DYNAMIC STATS specific for the statement, including the bind values. This information is used for any session using the same statement.
Cardinality feedback can be used to re-optimize subsequent operations. Join statistics are monitored. Works with adaptive cursor sharing. Persisted on disk. New column v$sql.is_reoptimizable shows that a subsequent run will take this into consideration. Collectors are kept, even if the SQL statement is killed part way through. The plan shows that cardinality feedback is used.
SQL Plan Directives are based on a SQL phrase (a specific join) rather than the whole statement. Cached in the directive cache, but persisted in the SYSAUX tablespace. Managed using the DBMS_SPD package.
Information gathered by the optimizer, may prompt automatic creation of column groups, so next time stats are gathered, the extended stats will be gathered.

What’s New in Security in the Latest Generation of Database Technology
  • Privilege Analysis:
    - Track direct privileges and privileges via roles being used, so you can determine the least privileges needed.
    - Monitoring controlled using DBMS_PRIVILEGE_CAPTURE.
    - Report what is used and what is not used.
  • Data Redaction: A variation in column masking of VPD, but it doesn’t just blank the value and still allows queries against the column in the WHERE clause.
  • Enhanced Security of Audit Trail:
    - Single unified audit trail.
    - Extension of the audit management package.
    - Multiple audit management privileges.
  • Encryption Enhancements:
    - Allow SQL creation and management of wallets, rather than command line utilities. Allows easier remote management.
    - Export and import wallets/keys between plugable databases.
    - Storage of wallets in ASM.
    - Much more…
  • Code-Based Access Control (CBAC):
    - A PL/SQL unit can have roles granted to it.
    - When the unit runs, any dynamic SQL running can have the privileges granted via the role.
    - Doesn’t affect compile time, so focussing very much on dynamic SQL.
    - Useful on invoker rights, since now the PL/SQL can run with user privileges and explicitly granted roles for the unit.
  • Invoker Rights:
    - INHERITED RIGHTS : Control accidental privilege escalation when a privileged user calls an invoker rights unit containing malicious code.
    - Invokers rights for views.
  • Separation of Duties:
    - SYSDBA – God
    - SYSOPER – More limited than SYSDBA, but still very powerful.
    - SYSBACKUP – Just enough to do a backup.
    - SYSDG – Just enough for data guard administration.
    - SYSKM – Just enough to perform basic key management tasks.
    - Roles for audit management.
출처 : ORACLE-BASE

 

:     

TISTORY에 Login하려면 여기를 누르세요.


A Comparison of Oracle's DATE and TIMESTAMP Datatypes

Oracle 2013. 4. 9. 09:50

A Comparison of Oracle's DATE and TIMESTAMP Datatypes

By James Koopmann

If you want to store date and time information in Oracle, you really only have two different options for the column's datatype. Lets take a quick look at these two datatypes and what they offer.

DATE datatype

This is the datatype that we are all too familiar with when we think about representing date and time values. It has the ability to store the month, day, year, century, hours, minutes, and seconds. It is typically good for representing data for when something has happened or should happen in the future. The problem with the DATE datatype is its' granularity when trying to determine a time interval between two events when the events happen within a second of each other. This issue is solved later in this article when we discuss the TIMESTAMP datatype. In order to represent the date stored in a more readable format, the TO_CHAR function has traditionally been wrapped around the date as in Listing A.

 

LISTING A:

Formatting a date

SQL> SELECT TO_CHAR(date1,'MM/DD/YYYY HH24:MI:SS') "Date" FROM date_table;
Date
---------------------------
06/20/2003 16:55:14
06/26/2003 11:16:36

 

About the only trouble I have seen people get into when using the DATE datatype is doing arithmetic on the column in order to figure out the number of years, weeks, days, hours, and seconds between two dates. What needs to be realized when doing the calculation is that when you do subtraction between dates, you get a number that represents the number of days. You should then multiply that number by the number of seconds in a day (86400) before you continue with calculations to determine the interval with which you are concerned. Check out Listing B for my solution on how to extract the individual time intervals for a subtraction of two dates. I am aware that the fractions could be reduced but I wanted to show all the numbers to emphasize the calculation.

 

LISTING B:

Determine the interval breakdown between two dates for a DATE datatype

  1         SELECT TO_CHAR(date1,'MMDDYYYY:HH24:MI:SS') date1,
  2         TO_CHAR(date2,'MMDDYYYY:HH24:MI:SS') date2,
  3         trunc(86400*(date2-date1))-
  4         60*(trunc((86400*(date2-date1))/60)) seconds,
  5         trunc((86400*(date2-date1))/60)-
  6         60*(trunc(((86400*(date2-date1))/60)/60)) minutes,
  7         trunc(((86400*(date2-date1))/60)/60)-
  8         24*(trunc((((86400*(date2-date1))/60)/60)/24)) hours,
  9         trunc((((86400*(date2-date1))/60)/60)/24) days,
 10         trunc(((((86400*(date2-date1))/60)/60)/24)/7) weeks
 11*        FROM date_table
DATE1             DATE2                SECONDS    MINUTES      HOURS       DAYS      WEEKS
----------------- ----------------- ---------- ---------- ---------- ---------- ----------
06202003:16:55:14 07082003:11:22:57         43         27         18         17          2
06262003:11:16:36 07082003:11:22:57         21          6          0         12          1


 

TIMESTAMP datatype

One of the main problems with the DATE datatype was its' inability to be granular enough to determine which event might have happened first in relation to another event. Oracle has expanded on the DATE datatype and has given us the TIMESTAMP datatype which stores all the information that the DATE datatype stores, but also includes fractional seconds. If you want to convert a DATE datatype to a TIMESTAMP datatype format, just use the CAST function as I do in Listing C. As you can see, there is a fractional seconds part of '.000000' on the end of this conversion. This is only because when converting from the DATE datatype that does not have the fractional seconds it defaults to zeros and the display is defaulted to the default timestamp format (NLS_TIMESTAMP_FORMAT). If you are moving a DATE datatype column from one table to a TIMESTAMP datatype column of another table, all you need to do is a straight INSERTSELECT FROM and Oracle will do the conversion for you. Look at Listing D for a formatting of the new TIMESTAMP datatype where everything is the same as formatting the DATE datatype as we did in Listing A. Beware while the TO_CHAR function works with both datatypes, the TRUNC function will not work with a datatype of TIMESTAMP. This is a clear indication that the use of TIMESTAMP datatype should explicitly be used for date and times where a difference in time is of utmost importance, such that Oracle won't even let you compare like values. If you wanted to show the fractional seconds within a TIMESTAMP datatype, look at Listing E. In Listing E, we are only showing 3 place holders for the fractional seconds.

 

 

LISTING C:

Convert DATE datatype to TIMESTAMP datatype

SQL> SELECT CAST(date1 AS TIMESTAMP) "Date" FROM t;
Date
-----------------------------------------------------
20-JUN-03 04.55.14.000000 PM
26-JUN-03 11.16.36.000000 AM

 

 

Formatting of the TIMESTAMP datatype

  1  SELECT TO_CHAR(time1,'MM/DD/YYYY HH24:MI:SS') "Date" FROM date_table
Date
-------------------
06/20/2003 16:55:14
06/26/2003 11:16:36

 

 

LISTING E:

Formatting of the TIMESTAMP datatype with fractional seconds

 1  SELECT TO_CHAR(time1,'MM/DD/YYYY HH24:MI:SS:FF3') "Date" FROM date_table
Date
-----------------------
06/20/2003 16:55:14:000
06/26/2003 11:16:36:000

 

 

Calculating the time difference between two TIMESTAMP datatypes is much easier than the old DATE

datatype. Look at what happens when you just do straight subtraction of the columns in Listing F. As you can see, the results are much easier to recognize, 17days, 18hours, 27minutes, and 43seconds for the first row of output. This means no more worries about how many seconds in a day and all those cumbersome calculations. And therefore the calculations for getting the weeks, days, hours, minutes, and seconds becomes a matter of picking out the number by using the SUBSTR function as can be seen in Listing G.


LISTING F:

Straight subtraction of two TIMESTAMP datatypes

1  SELECT time1,  time2,  (time2-time1)
  2*   FROM date_table
TIME1                          TIME2                          (TIME2-TIME1)
------------------------------ ----------------------------   ----------------------
06/20/2003:16:55:14:000000     07/08/2003:11:22:57:000000     +000000017 18:27:43.000000
06/26/2003:11:16:36:000000     07/08/2003:11:22:57:000000     +000000012 00:06:21.000000

 

 

LISTING G:

Determine the interval breakdown between two dates for a TIMESTAMP datatype

  1  SELECT time1,
  2         time2,
  3         substr((time2-time1),instr((time2-time1),' ')+7,2)                 seconds,
  4         substr((time2-time1),instr((time2-time1),' ')+4,2)                 minutes,
  5         substr((time2-time1),instr((time2-time1),' ')+1,2)                 hours,
  6         trunc(to_number(substr((time2-time1),1,instr(time2-time1,' '))))   days,
  7         trunc(to_number(substr((time2-time1),1,instr(time2-time1,' ')))/7) weeks
  8*   FROM date_table
TIME1                       TIME2                      SECONDS MINUTES HOURS DAYS WEEKS
-------------------------   -------------------------- ------- ------- ----- ---- -----
06/20/2003:16:55:14:000000  07/08/2003:11:22:57:000000  43     27      18    17    2
06/26/2003:11:16:36:000000  07/08/2003:11:22:57:000000  21     06      00    12    1

 

 

System Date and Time

In order to get the system date and time returned in a DATE datatype, you can use the SYSDATE function such as :

SQL> SELECT SYSDATE FROM DUAL;

In order to get the system date and time returned in a TIMESTAMP datatype, you can use the SYSTIMESTAMP function such as:

SQL> SELECT SYSTIMESTAMP FROM DUAL;

You can set the initialization parameter FIXED_DATE to return a constant value for what is returned from the SYSDATE function. This is a great tool for testing date and time sensitive code. Just beware that this parameter has no effect on the SYSTIMESTAMP function. This can be seen in Listing H.

 

 

LISTING H:

Setting FIXED_DATE and effects on SYSDATE and SYSTIMESTAMP

SQL> ALTER SYSTEM SET fixed_date = '2003-01-01-10:00:00';
System altered.

SQL> select sysdate from dual;
SYSDATE
---------
01-JAN-03

SQL> select systimestamp from dual;
SYSTIMESTAMP
---------------------------------------------------------
09-JUL-03 11.05.02.519000 AM -06:00

 

 

When working with date and time, the options are clear. You have at your disposal the DATE and TIMESTAMP datatypes. Just be aware, while there are similarities, there are also differences that could create havoc if you try to convert to the more powerful TIMESTAMP datatype. Each of the two has strengths in simplicity and granularity. Choose wisely.

:     

TISTORY에 Login하려면 여기를 누르세요.


Comparison Timestamp vs. Date Data Type

Oracle 2013. 4. 9. 09:36

Michael -- Thanks for the question regarding "Timestamp vs. Date - is Date still appropriate for new systems?", version 10.2

Submitted on 26-Nov-2006 2:49 UTC
Last updated 18-Feb-2010 9:54

You Asked

The new Timestamp datatypes are described as extensions of the Date datatype in Oracle's 
documentation.

They are clearly more powerful and include capabilities such as tracking times down to 
milliseconds, incorporating time zones, etc.

It's also generally accepted that you should minimize the complexity of a system where 
possible, and that one way of doing this is not to use redundant entities (in the general 
sense, not the ER diagram sense).

Given these points, is there any reason to still use Dates in new system development?  
Are there issues with performance, compatibility, etc?  Or is this like the switch from 
LONG and LONG RAW to LOBs where all new development should use the LOB?  Oracle's 
decision not to extend Date to also include Date With Timezone and Date With Local 
Timezone suggests that Oracle doesn't see the point in extending Date... presumably 
because it will be deprecated and replaced with Timestamp.

-----------------------

BTW, on a closely related topic, I don't understand the logic behind making Timestamp 
With Time Zone and Timestamp With Local Time Zone datatypes.

Seems to be that a database (or any other system) should store all Date / Times in a 
canonical form - presumably seconds since an agreed on starting second.  Then all of this 
Time Zone stuff is just a matter of Locale and client settings - my client should specify 
its Timezone to the Server and then all dates / times should be converted to the 
canonical form using that timezone unless I specify another time zone together with the 
date / time.

The With Local Timezone and With Timezone datatypes seem to describe how to present the 
information to clients more than what the datatype is. 

and we said...

I think dates will be here for a long time to come.

Timestamp is an ANSI thing, for compliance. 

The choice is yours.

And you cannot really store things in a canonical format - there are too many variations.

Dates are 7 bytes always

Timestamps are also 7 (no fractional seconds)
or 11 (fractional seconds)
or 13 (fractional seconds with timezone)

Probably - just using timestamp would be good going forward (there might be tools that 
cannot "deal" correctly with a timestamp yet - they would cause it to convert to a date - 
you'll use to_timestamp and such with them).

But in reality, date is just coming out of my fingers still :)  I typically have no need 
for the fractional seconds nor timezone. 

Reviews    
3 stars What about variations?   November 26, 2006 - 10am UTC
Reviewer: Mike Friedman from Shenzhen, China
Mind explaining this a bit more?

"And you cannot really store things in a canonical format - there are too many variations."

Does this mean that Oracle doesn't store dates internally as seconds since a reference date / time? 
 I know Windows does... and they have to deal with as many variations as Oracle, don't they? 


Followup   November 26, 2006 - 11am UTC:

The date datatype does, but not a "seconds since something".  

(windows cannot do a wide range of dates?  hmmm, you might not be entirely accurate on that seconds 
thing, I'll bet windows uses more than one format to store dates, or they cannot store dates that 
fall outside a very very very small range!)

<quote src=Expert Oracle Database Architecture>
DATE Type

The DATE type is a fixed-width 7-byte date/time datatype. It will always contain the seven 
attributes of the century, the year within the century, the month, the day of the month, the hour, 
the minute, and the second. Oracle uses an internal format to represent that information, so it is 
not really storing 20, 05, 06, 25, 12, 01, 00 for June 25, 2005, at 12:01:00. Using the built-in 
DUMP function, we can see what Oracle really stores:

ops$tkyte@ORA10G> create table t ( x date );
Table created.
 
ops$tkyte@ORA10G> insert into t (x) values
  2  ( to_date( '25-jun-2005 12:01:00',
  3             'dd-mon-yyyy hh24:mi:ss' ) );
1 row created.
 
ops$tkyte@ORA10G> select x, dump(x,10) d from t;
 
X         D
--------- -----------------------------------
25-JUN-05 Typ=12 Len=7: 120,105,6,25,13,2,1

The century and year bytes (the 120,105 in the DUMP output) are stored in an excess-100 notation. 
You would have to subtract 100 from them to determine the correct century and year. The reason for 
the excess-100 notation is support of BC and AD dates. If you subtract 100 from the century byte 
and get a negative number, it is a BC date, for example:

ops$tkyte@ORA10G> insert into t (x) values
  2  ( to_date( '01-jan-4712bc',
  3             'dd-mon-yyyybc hh24:mi:ss' ) );
1 row created.
 
ops$tkyte@ORA10G> select x, dump(x,10) d from t;
 
X         D
--------- -----------------------------------
25-JUN-05 Typ=12 Len=7: 120,105,6,25,13,2,1
01-JAN-12 Typ=12 Len=7: 53,88,1,1,1,1,1

So, when we insert 01-JAN-4712BC, the century byte is 53 and 53 – 100 = –47, the century we 
inserted. Because it is negative, we know that it is a BC date. This storage format also allows the 
dates to be naturally sortable in a binary sense. Since 4712 BC is “less than” 4710 BC, we’d like a 
binary representation that supports that. By dumping those two dates, we can see that 01-JAN-4710BC 
is “larger” than the same day in 4712 BC, so they will sort and compare nicely:

ops$tkyte@ORA10G> insert into t (x) values
  2  ( to_date( '01-jan-4710bc',
  3             'dd-mon-yyyybc hh24:mi:ss' ) );
1 row created.
 
ops$tkyte@ORA10G> select x, dump(x,10) d from t;
 
X         D
--------- -----------------------------------
25-JUN-05 Typ=12 Len=7: 120,105,6,25,13,2,1
01-JAN-12 Typ=12 Len=7: 53,88,1,1,1,1,1
01-JAN-10 Typ=12 Len=7: 53,90,1,1,1,1,1

The month and day bytes, the next two fields, are stored naturally, without any modification. So, 
June 25 used a month byte of 6 and a day byte of 25. The hour, minute, and second fields are stored 
in excess-1 notation, meaning we must subtract 1 from each component to see what time it really 
was. Hence midnight is represented as 1,1,1 in the date field.

This 7-byte format is naturally sortable, as you have seen—it is a 7 byte field that can be sorted 
in a binary fashion from small to larger (or vice versa) very efficiently. Additionally, its 
structure allows for easy truncation, without converting the date into some other format. For 
example, truncating the date we just stored, 25-JUN-2005 12:01:00, to the day (remove the hours, 
minutes, seconds) is very straightforward. Just set the trailing three bytes to 1,1,1 and the time 
component is as good as erased. 
</quote>


Timestamps get more complicated - there are timestamps without timezones, with local timezones - 
you cannot store those in "one fashion" - one preserves the original timezone for example (so you 
cannot put it into UTC, you need to remember what timezone it used to be) and the other puts it 
into the database timezone.
 

5 stars Thanks   November 26, 2006 - 12pm UTC
Reviewer: Michael Friedman from Shenzhen, China


3 stars to_timestamp   September 10, 2008 - 8pm UTC
Reviewer: Paras Bansal from Milpitas, CA
Can you explain this - 

SELECT cast(to_timestamp('01-may-2005 23:59:59.501','dd-mon-yyyy hh24:mi:ss:ff') AS DATE) FROM 
dual;

It returns me 2nd may as DATE. Can we do something so that it truncs the millisec portion and we 
get only 1st May.

regards,
Paras Bansal


Followup   September 16, 2008 - 11am UTC:

substr the string you are trying to convert and just use to_date. 

ops$tkyte%ORA10GR2> SELECT to_date(substr( '01-may-2005 23:59:59.501', 1, 20),'dd-mon-yyyy 
hh24:mi:ss') from dual;

TO_DATE(SUBSTR('01-M
--------------------
01-may-2005 23:59:59


2 stars curious TO_TIMESTAMPing around   September 16, 2008 - 2pm UTC
Reviewer: Duke Ganote from Amelia, Ohio USA
SQL*Plus: Release 10.2.0.1.0 - Production on Tue Sep 16 13:35:17 2008

Copyright (c) 1982, 2005, Oracle.  All rights reserved.


Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the OLAP and Data Mining Scoring Engine options

[glogin.sql includes:
alter session set nls_date_format='yyyy-mm-dd HH24:MI:SS';
alter session set nls_timestamp_format = 'yyyy-mm-dd HH24:MI:SS.FF';
]

select cast(ts1 as date) dt1
     , ts1
     , cast(ts2 as date) dt2
     , ts2
  from
(
select to_timestamp('01-may-2005 23:59:59.501'
                   ,'dd-mon-yyyy hh24:mi:ss:ff') ts1
     , systimestamp ts2
 from dual
)
/
DT1                 
TS1
DT2
TS2
--------------------------------------------------
2005-05-02 00:00:00 
2005-05-01 23:59:59.501000000
2008-09-16 13:33:39
16-SEP-08 01.33.38.512485 PM -04:00


Followup   September 16, 2008 - 11pm UTC:

do you have access to support to file a bug? 
1 stars where is the bug ?   September 17, 2008 - 4am UTC
Reviewer: Sokrates 
sorry, I don't see it.
Can you please explain ?
What was expected output ?


Followup   September 17, 2008 - 9am UTC:



when you cast a to_timestamp value as a date - the time component disappeared. 

when you cast a timestamp value as a date - the time component did NOT disappear. 
3 stars Isn't it just rounding   February 16, 2010 - 8pm UTC
Reviewer: Warwick from Sydney, Australia
Hi Tom, 

Isn't this due to rounding? I tried this using both 9i and 11r1 

alter session set nls_date_format='yyyy-mm-dd HH24:MI:SS';
alter session set nls_timestamp_format = 'yyyy-mm-dd HH24:MI:SS.FF';


Running the original query returned the results above. Changing it to 
select cast(ts1 as date) dt1
     , ts1
     , cast(ts2 as date) dt2
     , ts2
  from
(
select to_timestamp('01-may-2005 23:59:58.501'
                   ,'dd-mon-yyyy hh24:mi:ss:ff') ts1
     , systimestamp ts2
 from dual
)
/

DT1
TS1
DT2
TS2
---------------------
2005-05-01 23:59:59
2005-05-01 23:59:58.501000000
2010-02-17 12:49:57
17-FEB-10 12.49.56.986028 PM +11:00


Cheers 
Warwick 



Followup   February 17, 2010 - 8am UTC:

9i and 10g (and 11gr1) all lose the time component: 

ops$tkyte%ORA9IR2> select * from v$version;

BANNER
----------------------------------------------------------------
Oracle9i Enterprise Edition Release 9.2.0.8.0 - Production
PL/SQL Release 9.2.0.8.0 - Production
CORE    9.2.0.8.0       Production
TNS for Linux: Version 9.2.0.8.0 - Production
NLSRTL Version 9.2.0.8.0 - Production

ops$tkyte%ORA9IR2> alter session set nls_date_format='yyyy-mm-dd HH24:MI:SS';

Session altered.

ops$tkyte%ORA9IR2> alter session set nls_timestamp_format = 'yyyy-mm-dd HH24:MI:SS.FF';

Session altered.

ops$tkyte%ORA9IR2>
ops$tkyte%ORA9IR2> select cast(ts1 as date) dt1
  2       , ts1
  3       , cast(ts2 as date) dt2
  4       , ts2
  5    from
  6  (
  7  select to_timestamp('01-may-2005 23:59:59.501'
  8                     ,'dd-mon-yyyy hh24:mi:ss:ff') ts1
  9       , systimestamp ts2
 10   from dual
 11  )
 12  /

DT1
-------------------
TS1
---------------------------------------------------------------------------
DT2
-------------------
TS2
---------------------------------------------------------------------------
2005-05-02 00:00:00
2005-05-01 23:59:59.501000000
2010-02-17 09:54:28
17-FEB-10 09.54.27.579168 AM -05:00




10g: 
ops$tkyte%ORA10GR2> select * from v$version;

BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Prod
PL/SQL Release 10.2.0.4.0 - Production
CORE    10.2.0.4.0      Production
TNS for Linux: Version 10.2.0.4.0 - Production
NLSRTL Version 10.2.0.4.0 - Production


ops$tkyte%ORA10GR2> select cast(ts1 as date) dt1
  2       , ts1
  3       , cast(ts2 as date) dt2
  4       , ts2
  5    from
  6  (
  7  select to_timestamp('01-may-2005 23:59:59.501'
  8                     ,'dd-mon-yyyy hh24:mi:ss:ff') ts1
  9       , systimestamp ts2
 10   from dual
 11  )
 12  /

DT1
-------------------
TS1
---------------------------------------------------------------------------
DT2
-------------------
TS2
---------------------------------------------------------------------------
2005-05-02 00:00:00
2005-05-01 23:59:59.501000000
2010-02-17 09:55:29
17-FEB-10 09.55.28.592716 AM -05:00



and 11gR1: 

ops$tkyte%ORA11GR1> select * from v$version;

BANNER
-------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - Production
PL/SQL Release 11.1.0.7.0 - Production
CORE    11.1.0.7.0      Production
TNS for Linux: Version 11.1.0.7.0 - Production
NLSRTL Version 11.1.0.7.0 - Production

ops$tkyte%ORA11GR1> alter session set nls_date_format='yyyy-mm-dd HH24:MI:SS';

Session altered.

ops$tkyte%ORA11GR1> alter session set nls_timestamp_format = 'yyyy-mm-dd HH24:MI:SS.FF';

Session altered.

ops$tkyte%ORA11GR1>
ops$tkyte%ORA11GR1> select cast(ts1 as date) dt1
  2       , ts1
  3       , cast(ts2 as date) dt2
  4       , ts2
  5    from
  6  (
  7  select to_timestamp('01-may-2005 23:59:59.501'
  8                     ,'dd-mon-yyyy hh24:mi:ss:ff') ts1
  9       , systimestamp ts2
 10   from dual
 11  )
 12  /

DT1
-------------------
TS1
---------------------------------------------------------------------------
DT2
-------------------
TS2
---------------------------------------------------------------------------
2005-05-02 00:00:00
2005-05-01 23:59:59.501000000
2010-02-17 09:56:01
17-FEB-10 09.56.01.087210 AM -05:00




but 11gr2: 

ops$tkyte%ORA11GR2> select * from v$version;

BANNER
-------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
PL/SQL Release 11.2.0.1.0 - Production
CORE    11.2.0.1.0      Production
TNS for Linux: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production

ops$tkyte%ORA11GR2> alter session set nls_date_format='yyyy-mm-dd HH24:MI:SS';

Session altered.

ops$tkyte%ORA11GR2> alter session set nls_timestamp_format = 'yyyy-mm-dd HH24:MI:SS.FF';

Session altered.

ops$tkyte%ORA11GR2>
ops$tkyte%ORA11GR2> select cast(ts1 as date) dt1
  2       , ts1
  3       , cast(ts2 as date) dt2
  4       , ts2
  5    from
  6  (
  7  select to_timestamp('01-may-2005 23:59:59.501'
  8                     ,'dd-mon-yyyy hh24:mi:ss:ff') ts1
  9       , systimestamp ts2
 10   from dual
 11  )
 12  /

DT1
-------------------
TS1
---------------------------------------------------------------------------
DT2
-------------------
TS2
---------------------------------------------------------------------------
2005-05-01 23:59:59
2005-05-01 23:59:59.501000000
2010-02-17 09:57:22
17-FEB-10 09.57.22.406995 AM -05:00



4 stars Isn't it rounding to nearest second?   February 18, 2010 - 9am UTC
Reviewer: John Abate from Missouri, USA
It looks to me that it is rounding the .501 fraction of a second to the nearest whole second

01-may-2005 23:59:59.501 rounds to 02-may-2005 00:00:00

Or am I missing something?


Followup   February 18, 2010 - 9am UTC:

doh, you are correct, I didn't notice the DATE flipped! 

and I now do vaguely recall that the behavior changed - in that the timestamp would trunc() not round in 11g. 

You are correct - I did not see the forest for all of the trees. I was so concentrated on the time going to 00:00:00, that I did not even really look at what the time was beforehand... 

Reference : http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:77562635789106

:     

TISTORY에 Login하려면 여기를 누르세요.


Oracle PL/SQL 기초 교육 문서

Oracle 2013. 3. 6. 15:35

Oracle Club에서 작성된 Oracle PL/SQL 기초 교육 문서입니다.

 

자세한 내용은 첨부파일의 내용을 확인해보세요.

 

pl_sql.doc

:     

TISTORY에 Login하려면 여기를 누르세요.