SAK �}�‘ŠÙ
Oracle PL/SQL •Ò3 - ƒRƒŒƒNƒVƒ‡ƒ“�Atable�Avarray�A�錾�AƒRƒŒƒNƒVƒ‡ƒ“ƒ�ƒ\ƒbƒh
�¡PL/SQL ƒRƒŒƒNƒVƒ‡ƒ“
�EƒRƒŒƒNƒVƒ‡ƒ“‚Æ‚µ‚Ä�A
table ƒlƒXƒg‚µ‚½•\
varray ‰Â•σTƒCƒY”z—ñ
‚ª‚ ‚é�B
varray ‚Í“YŽš‚Ì�ãŒÀ‚ªŒˆ‚܂邪�Atable ‚É‚Í�ãŒÀ‚ª‚È‚¢�B
‚Ü‚½�Atable ‚Í�A’†”²‚Ì�ó‘Ԃɂł«‚é�B
�Etable ‚Í�ASQL ‚Å‚àˆµ‚¦‚邪�A�õˆø•t‚« table ‚͈µ‚¦‚È‚¢�B
(index by binary_integer Žw’è‚Ì‚à‚Ì�B)
�¡SQL ‚ł̃RƒŒƒNƒVƒ‡ƒ“�錾
�y’P�ƒŒ^�z
create type ttel as table of varchar2(12)
/
create type tadre as object (
name varchar2(40),
adre varchar2(200),
tel ttel
)
/
�y’P�ƒ—á varray Œ^ + oo4o ƒtƒB�[ƒ‹ƒhŽQ�Æ�z
create type ttadre as varray(3) of varchar2(20)
/
create table test (
item1 char(10),
item2 char(10),
adre ttadre
)
/
insert into test values ('a001', 'b002',
ttadre('Ž�–¼1', 'Ž�–¼2', 'Ž�–¼3')
)
/
'** oo4o varray Œ^ŽQ�Æ(“YŽš)
Dim item As OraCollection
Do Until rs.EOF
Print rs(0)
Print rs(1)
Set item = rs.Fields("adre").Value
For i = 1 To item.Size
Print i & " - " & item(i)
Next
rs.MoveNext
Loop
�y’P�ƒ—á object Œ^ + oo4o ƒtƒB�[ƒ‹ƒhŽQ�Æ�z
create type tadre as object (
name varchar2(40),
adre varchar2(200),
tel varchar2(12)
)
/
create table test (
item1 char(10),
item2 char(10),
adre tadre
)
/
insert into test values ('a001', 'b002',
tadre('Ž�–¼1', '�Z�Š1', '“d˜b1')
)
/
'** oo4o object Œ^ŽQ�Æ(–¼‘O)
Dim item As OraObject
Do Until rs.EOF
Print rs(0)
Print rs(1)
Set item = rs.Fields("adre").Value
Print "name - " & item.Name
Print "adre - " & item.adre
Print "tel - " & item.tel
rs.MoveNext
Loop
'** oo4o object Œ^ŽQ�Æ(“YŽš)
Do Until rs.EOF
Print rs(0)
Print rs(1)
Set item = rs.Fields(2).Value
For i = 1 To item.Count
Print i & " - " & item(i)
Next
rs.MoveNext
Loop
�y•¡ŽG—á object Œ^�A varray Œ^ + oo4o ƒtƒB�[ƒ‹ƒhŽQ�Æ�z
create type tadre as object (
name varchar2(40),
adre varchar2(200),
tel varchar2(12)
)
/
create type ttadre as varray(3) of tadre
/
create table test (
item1 char(10),
item2 char(10),
adre ttadre
)
/
insert into test values ('a001', 'b002',
ttadre(
tadre('Ž�–¼1', '�Z�Š1', '“d˜b1'),
tadre('Ž�–¼2', '�Z�Š2', '“d˜b2'),
tadre('Ž�–¼3', '�Z�Š3', '“d˜b3')
)
)
/
'** oo4o varray Œ^�Aobject Œ^ŽQ�Æ(–¼‘O)
Do Until rs.EOF
Print rs(0)
Print rs(1)
Set item = rs.Fields("adre").Value
For i = 1 To item.Size
Set item2 = item(i)
For j = 1 To item2.Count
Print i & " - name - " & item2.Name
Print i & " - adre - " & item2.adre
Print i & " - tel - " & item2.tel
Next
Next
rs.MoveNext
Loop
'** oo4o varray Œ^�Aobject Œ^ŽQ�Æ(“YŽš)
Do Until rs.EOF
Print rs(0)
Print rs(1)
Set item = rs.Fields(2).Value
For i = 1 To item.Size
Set item2 = item(i)
For j = 1 To item2.Count
Print i & ", " & j & " - " & item2(j)
Next
Next
rs.MoveNext
Loop
�¡ƒRƒŒƒNƒVƒ‡ƒ“�錾
declare
type ttel is table of varchar2(12);
a ttel;
begin
a := ttel('123-456-7890', '123-456-7890', '123-456-7890');
a(1) := '100';
end;
/
declare
type ttel is varray(3) of varchar2(12);
a ttel;
begin
a := ttel('123-456-7890', '123-456-7890', '123-456-7890');
a(1) := '100';
end;
/
declare
type tjcno is table of Žó’�m.Žó’�”Ô�†%type;
jcno tjcno;
cursor cu is select * from “¾ˆÓ�æm;
type tkrec is table of cu%rowtype;
begin
jcno := tjcno('123456-001', '123456-001', '123456-001');
jcno(1) := '100';
end;
/
declare
type ttest is record (
item1 varchar2(20),
item2 varchar2(20),
item3 varchar2(20)
);
type tttest is varray(2) of ttest;
a tttest;
begin
a := tttest();
end;
/
declare
type ta is varray(10) of varchar2(10);
type ttest is record (
item1 varchar2(20),
item2 varchar2(20),
item3 ta
);
a ttest;
begin
a.item3 := ta();
end;
/
�¡•s‰Â”\‚È�錾
�Etable�A‚Ü‚½‚Í�Avarray ‚ð�X‚É table�A‚Ü‚½‚Í�Avarray ‚Ɋ܂߂邱‚Æ‚Í�o
—ˆ‚È‚¢�B(SQL ‚Ì create type ... as object ‚͊܂߂ç‚ê‚é�B)
declare
type ttest is table of varchar2(10);
type tttest is varray(2) of ttest;
a tttest;
begin
a := tttest();
end;
/
declare
type ta is varray(10) of varchar2(10);
type ttest is record (
item1 varchar2(20),
item2 varchar2(20),
item3 ta
);
type tttest is varray(2) of ttest;
a tttest;
begin
a := tttest();
end;
/
�¡ƒRƒŒƒNƒVƒ‡ƒ“ƒ�ƒ\ƒbƒh
ƒRƒŒƒNƒVƒ‡ƒ“–¼.exists(“YŽš) “YŽš‚ª‘¶�Ý‚·‚ê‚Î TRUE
ƒRƒŒƒNƒVƒ‡ƒ“–¼.count —v‘f�”
ƒRƒŒƒNƒVƒ‡ƒ“–¼.limit �Å‘å—v‘f�” (table ‚Í�ANULL ‚ª•Ô‚é)
ƒRƒŒƒNƒVƒ‡ƒ“–¼.first �Å�¬“YŽš
ƒRƒŒƒNƒVƒ‡ƒ“–¼.last �Å‘å“YŽš
ƒRƒŒƒNƒVƒ‡ƒ“–¼.prior(n —v‘f) n —v‘f‘O‚Ì“YŽš
ƒRƒŒƒNƒVƒ‡ƒ“–¼.next(n —v‘f) n —v‘fŽŸ‚Ì“YŽš
ƒRƒŒƒNƒVƒ‡ƒ“–¼.extend(n —v‘f) n —v‘f’ljÁ (table ‚Ì‚Ý)
ƒRƒŒƒNƒVƒ‡ƒ“–¼.extend(n —v‘f, “YŽš) “YŽš‚Ì—v‘f‚ð n —v‘fƒRƒs�[ (table ‚Ì‚Ý)
ƒRƒŒƒNƒVƒ‡ƒ“–¼.trim(n —v‘f) �Ōォ‚ç n —v‘f�í�œ (table ‚Ì‚Ý)
ƒRƒŒƒNƒVƒ‡ƒ“–¼.delete(“YŽš) “YŽš‚Ì—v‘f‚ð�í�œ (table ‚Ì‚Ý)
�¡Oracle PL/SQL •ÒŽ‘—¿
�¡SQL Šî‘bŽÀ’n•ÒŽ‘—¿
�¡SQL Šî‘b•ÒŽ‘—¿
�¡SQL ƒ`ƒ…�[ƒjƒ“ƒO•ÒŽ‘—¿
�¡PostgreSQL •Ò�AJAVA Servlet�AJSP •ÒŽ‘—¿
�¡MySQL •ÒŽ‘—¿