분석 함수의 초기 체험(二)-환경

10668 단어 분석 함수
한 권의 책에서 설명한 바와 같이 실험 환경은oracle 11g의 SH 사용자의 데이터를 사용하고 데이터베이스를 만들 때'sample schema'를 선택하면 기본적으로 일련의 예시 사용자를 만들 것이다. 이는 scott/hr/sh/bi 등을 포함하지만 이들 사용자 중 scott를 제외한 다른 사용자는 데이터가 없다. 이것은 공식 사이트에서 examples의 압축 패키지를 다운로드해야 한다.이 가방을 설치한 후에 데이터를 가져와야만 해당하는 데이터가 있을 수 있다.
설치가 간단하고 설치 프로그램을 직접 실행하면 된다. 번거로운 것은 데이터를 가져오는 데 꽤 많은 우여곡절이 든다.
설치 후/u01/oracle/app/oracle/product/11.2.0/demo/schema/saleshistory 디렉터리에서 창설 사용자와 예시 데이터 파일을 찾을 수 있으며 데이터는 sqlldr로 가져와야 합니다.
구체적인 단계는 다음과 같습니다.
    1. 먼저 관리자 사용자로 로그인하여sh 실행main.ql, 이 스크립트는 주로 사용자, 테이블, 보기, 인덱스 등을 만듭니다.
SQL> @sh_main.sql



specify password for SH as parameter 1:

Enter value for 1: sh



specify default tablespace for SH as parameter 2:

Enter value for 2: users



specify temporary tablespace for SH as parameter 3:

Enter value for 3: temp



specify password for SYS as parameter 4:

Enter value for 4: memory



specify directory path for the data files as parameter 5:

Enter value for 5: /u01/oracle/app/oracle/product/11.2.0/demo/schema/sales_history



writeable directory path for the log files as parameter 6:

Enter value for 6: /u03/dmp



specify version as parameter 7:

Enter value for 7: v3

5단계와 7단계를 주의하세요. 5단계의 경로는sh사용자 스크립트를 저장하는 경로를 말합니다. 7단계의 버전은sh발상 디렉터리 ls에서 확인할 수 있습니다. 많은 파일 뒤에 숫자가 있습니다. 바로 이 버전입니다. 데이터베이스 버전이 아닙니다.
    2. 데이터를 가져오면 순서가 틀릴 수 없습니다. 표에 키 제약이 있기 때문에 순서가 틀려서 데이터를 가져올 수 없습니다.
sqlldr userid=sh/sh control=prom_v3.ctl data=prom1v3.dat

sqlldr userid=sh/sh control=cust_v3.ctl data=cust1v3.dat

sqlldr userid=sh/sh control=cust2v3.ctl data=cust2v3.dat

sqlldr userid=sh/sh control=prod_v3.ctl data=prod1v3.dat

sqlldr userid=sh/sh control=prod2v3.ctl data=prod2v3.dat

sqlldr userid=sh/sh control=sale_v3.ctl data=sale1v3.dat

sqlldr userid=sh/sh control=sale2v3.ctl data=sale2v3.dat

    3. 실험용 데이터 테이블 만들기
 1 CREATE table sales_fact AS

 2 SELECT country_name country,

 3        country_subRegion region,

 4        prod_name product,

 5        calendar_year year,

 6        calendar_week_number week,

 7        SUM(amount_sold) sale,

 8        sum(amount_sold * (case

 9              when mod(rownum, 10) = 0 then

10               1.4

11              when mod(rownum, 5) = 0 then

12               0.6

13              when mod(rownum, 2) = 0 then

14               0.9

15              when mod(rownum, 2) = 1 then

16               1.2

17              else

18               1

19            end)) receipts

20   FROM sales, times, customers, countries, products

21  WHERE sales.time_id = times.time_id

22    AND sales.prod_id = products.prod_id

23    AND sales.cust_id = customers.cust_id

24    AND customers.country_id = countries.country_id

25  GROUP BY country_name,

26           country_subRegion,

27           prod_name,

28           calendar_year,

29           calendar_week_number;

실험 환경이 완성되다.
 

좋은 웹페이지 즐겨찾기