오브젝트-PL/SQL

Object-PL/SQL

Object-PL/SQL(Object-Procedure Language/Structured Query Language 또는 단순 O-PL/SQL)은 SQL 및 Oracle 관계형 [1]데이터베이스Oracle Corporation절차 확장 언어를 사용하는 방법입니다.[2] 버전 7의 추가 기능 및 기타 개선사항은 객체 지향 데이터베이스 [3]패러다임의 대규모 환경 구현으로 이어집니다.

PL/SQL의 일반적인 구문은 이전Ada나 Pascal과 비슷했지만, 주로 Java 임베딩[4] 코드와 SQL 내부[5] 객체 지향 구문을 포함하는 많은 개선점이 있었습니다.

트리거와 저장 프로시저의 혼합 및 임베딩은 OO [6]패러다임에서 PL/SQL의 사용을 지원하기 위한 돌파구 중 하나였습니다.다음과 같은 문의 SQL 구문에 포함됨[클래스][object] 및 객체 유형[7] 구현(다른 OO 언어처럼)은 특정 매핑 [8]소프트웨어를 사용하지 않고도 확장 SQL 언어로 매핑 접근법에 대한 최소 요건을 완료했습니다.

아이템 포켓O-PL/SQL의 자율성, 평판 및 중요성

럭키[10] 에그

오브젝트 혼재

아이템 포켓DBMS클래스 객체의 객체.이것은 우리가 하나의 언어로 두 가지 의미를 모두 가지고 살기 때문에 매우 중요하다.설명서에서 개체를 두 가지 정의 중 하나로 참조하는 경우를 식별해야 합니다.

데이터베이스 개체는 관계형 또는 순차형 데이터베이스를 참조하는 개념으로, 새 모델에서 계속 유효합니다.테이블, 트리거, , 인덱스는 데이터베이스 [7]객체의 예로서 O-PL/SQL에 존재하지만 Java 객체의 개념과 같은 의미를 가집니다.특히 클래스의 인스턴스화에서 시작하는 집합의 요소입니다.

PL/SQL

PL/SQL은 Oracle Database에서 사용되는 확장 SQL 언어입니다.

PL/SQL은 Oracle Database(버전 7 이후), Times에서 사용 가능10개의 인메모리 데이터베이스(버전 11.2.1 이후) 및 IBM DB2(버전 9.[11]7 이후)

O-PL/SQL을 사용하면 클래스를 정의하고 오브젝트로 인스턴스화할 수 있으므로 저장 프로시저 및 트리거에서 Java를 사용하는 것 외에도 사용자 정의 데이터 유형을 쓰기 생성자로 만들 수 있습니다.

O-PL/SQL 구문 사용 예시

다음은 공식 문서[12] 및 기타 출처에서 발췌한 O-PL/SQL 구문 예제입니다.

객체 지향 PL/SQL의[13] 간단한 예

만들다 또는 교체하다 유형 base_type ~하듯이 물건 (   a 번호,   컨스트럭터 기능. base_type 돌아가다 자신 ~하듯이 결과,   멤버 기능.  기능하다 돌아가다 번호,   멤버 절차. 프로세서 (n 번호) ) 순간적인 것은 아니다. 최종; / 

이제 유형의 구현이 생성됩니다.구현은 유형의 함수, 절차 및 명시적 생성자의 동작을 정의합니다.

만들다 또는 교체하다 유형  base_type ~하듯이    컨스트럭터 기능. base_type 돌아가다 자신 ~하듯이 결과    시작한다.     a:=0;     돌아가다;   끝. base_type;    멤버 기능. 기능하다 돌아가다 번호    시작한다.     돌아가다 a;   끝. 기능하다;    멤버 절차. 프로세서 (n 번호) ~하듯이   시작한다.     a:=n;   끝. 프로세서; 끝.; / 

base_type에서 파생할 준비가 되었습니다.파생 키워드는 다음과 같습니다.파생형은 새로운 속성(이름: m)을 정의하고 func를 덮어씁니다.

만들다 또는 교체하다 유형 파생형 아래 base_type (   m 번호,   우선하다 멤버 기능. 기능하다 돌아가다 번호 ); / 

기본 유형의 경우와 마찬가지로 파생 유형의 재정의된 메서드를 구현해야 합니다.

만들다 또는 교체하다 유형  파생형 ~하듯이   우선하다 멤버 기능. 기능하다 돌아가다 번호    시작한다.     돌아가다 m*a;   끝.; 끝.; / 

작성된 유형을 인스턴스화하고 메서드를 호출할 수 있습니다.

선언하다   b1 base_type :=base_type();   b2 base_type :=base_type(4);   d1 파생형:=파생형(5,6);   d2 파생형:=파생형(5,6); 시작한다.   dbms_output.put_line의(b1.기능하다);   dbms_output.put_line의(b2.기능하다);    d1.프로세서(4);   dbms_output.put_line의(d1.기능하다);   dbms_output.put_line의(d2.기능하다); 끝.; / 

결과.

0 4 24 30

작성된 유형이 실제 유형이 되어 테이블에서 사용할 수 있습니다.

만들다 테이블 테이블_베이스 (   b base_type ); 선언하다   기초  base_type := base_type();   파생물 파생형:= 파생형(8,9); 시작한다.   삽입하다 안으로 테이블_베이스 가치(기초);   삽입하다 안으로 테이블_베이스 가치(파생물); 끝.; / 선택한다. t.b.기능하다() 부터 테이블_베이스 t; 

결과:

0 72
선택한다. 평균(t.b.기능하다()) 부터 테이블_베이스 t; 

결과:

36 

「 」를 참조해 주세요.

참고 문헌

  • Bennett, Mathew (2002). Programming Oracle Developer (1 ed.). Indianapolis: Sams. p. 348. ISBN 0672321106.
  • Bales, Donals (2007). PL/SQL from Novice to Professional (1 ed.). New York: Apress. p. 469. ISBN 978-1590598825.
  • Feuerstein, Steven; Pribyl, Bill (2009). "26". Oracle PL/SQL Programming. Sebastopol: O'Reilly Media, Inc. ISBN 9780596514464.
  • Rahayu, Wenny; taniar, David; Pardede, Eric (2006). Object-Oriented Oracle (PDF). Hershey: IRM Press. p. 345. ISBN 1591406080. Archived from the original (PDF) on 2016-03-03. Retrieved 2012-04-20.

레퍼런스

  1. ^ Lassan, Alan R.; Due, Jacob Steen (13 June 2000). "Experiences with Object Oriented Development in PL/SQL" (PDF). The danish National Center for IT Research. Archived from the original (PDF) on 24 December 2010. Retrieved 15 April 2012.
  2. ^ Centre For; Allan R. Lassen; Jacob Steen Due (2000). "Experiences with Object Oriented Development in PL/SQL". CiteSeerX 10.1.1.38.5122. {{cite journal}}:Cite 저널 요구 사항 journal=(도움말)
  3. ^ Cunningham, Lewis. "PL/SQL Features by Release". Burleson Consulting. Retrieved 15 April 2012.
  4. ^ "When Should you use Java Stored Procedures with an Oracle Database, what are the Drawbacks?". Stack Overflow. Retrieved 15 April 2012.
  5. ^ "Oracle's Object-Oriented Features". etutorial.org. Retrieved 16 April 2012.
  6. ^ Benett, 2002:144
  7. ^ a b Shubho, Al-Farooque (8 November 2009). "Optimize Database Files and Apply Partitioning". The Code Project. Retrieved 19 April 2012.
  8. ^ Bales, 2007:107-209
  9. ^ "Use Object PL/SQL". java2s.com. Retrieved 19 April 2012.
  10. ^ Feuerstein, 2009
  11. ^ "DB2 10: Run Oracle applications on DB2 10 for Linux, UNIX, and Windows". IBM. Retrieved 20 April 2012.
  12. ^ "Oracle Documentatio". Oracle. Retrieved 19 April 2012.
  13. ^ "Object Oriented Oracle, example 1". René Nyffenegger's collection of things on the web. Retrieved 19 April 2012.

외부 소스

  • O-PL/SQL의 예
  • Oracle Documentation에 포함된 Java 스토어드 프로시저의 또 다른 예: