2012-11-27 3 views
-1

:Java에서와 같이 Oracle에서 arraysize를 정의하는 방법은 무엇입니까? 자바에서

Date d[] = new Date[2]; 
Date temp[] = {new Date(),new Date()}; 

temp date = (sysdate,sysdate);--it works 

오라클

에서하지만 어떻게 우리가 자바 코드에서와 같이 2로 온도의 크기를 정의하는 방법.

+0

매뉴얼에는이 작업을 수행하는 방법이 설명되어 있지 않습니까? –

+0

데이터베이스 (또는 프로그래밍 전반)를 처음 접한 분은 먼저 설명서에서 정보를 찾는 방법을 배워야합니다. 가장 간단한 문법 문제에 대해서조차도 질문 할 필요가 없다면 그리 멀지 못할 것입니다. –

답변

3

나는이 질문을 이해할 수 있을지 잘 모르겠다. PL/SQL 용으로 태그를 지정했기 때문에 "in Oracle"코드는 구문 상 올바른 PL/SQL 코드로 간주되지만 게시 한 구문은 유효하지 않습니다.

PL/SQL에는 세 가지 유형의 콜렉션이 있습니다. 중첩 테이블, 연관 배열 및 VARRAY가 있습니다. 컴파일 할 때 중첩 테이블이나 연관 배열의 크기를 선언하지 않습니다. 필요한 공간을 사용합니다. 컴파일 할 때 VARRAY의 크기를 선언하면 두 개의 날짜를 저장하는 VARRAY를 선언 할 수있다. 하지만 중첩 된 테이블을 사용하는 대신 크기가 2 인 VARRAY를 선언하고자하는 경우를 상상할 수는 없습니다. 왜냐하면 2 요소 컬렉션으로 자신을 제한하면 아무런 이점이 없기 때문입니다. 원한다면 아래처럼 VARRAY를 선언 할 수 있습니다.

SQL> ed 
Wrote file afiedt.buf 

    1 declare 
    2 -- Nested table 
    3 type date_nt is table of date; 
    4 -- Associative array 
    5 type date_aa is table of date index by pls_integer; 
    6 -- VArray 
    7 type date_va is varray(2) of date; 
    8 l_date_nt date_nt := date_nt(sysdate, sysdate); 
    9 l_date_va date_va := date_va(sysdate, sysdate); 
10 l_date_aa date_aa; 
11 begin 
12 l_date_aa(1) := sysdate; 
13 l_date_aa(100) := sysdate; 
14* end; 
15/

PL/SQL procedure successfully completed. 
+0

감사합니다. – sunleo

관련 문제