-1

Java で:

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

オラクルでは

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

ただし、Java コードで行うように、temp のサイズを 2 として定義する方法。

4

1 に答える 1

3

質問を理解しているかどうかはよくわかりません。PL/SQL のタグを付けたので、「in Oracle」コードは構文的に正しい PL/SQL コードを意図していると思いますが、投稿したものは有効な構文ではありません。

PL/SQL には、3 つの異なるタイプのコレクションがあります。ネストした表、連想配列およびVARRAYがあります。ネストされたテーブルまたは連想配列のサイズは、コンパイル時に宣言しません。必要なスペースが使用されます。2 つの日付を格納する 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.
于 2012-11-27T17:44:16.657 に答える