| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Usenet -> c.d.o.server -> Re: How to implement link list
Allen Kirby wrote:
>
> Wong Ming Ho wrote:
> >
> > Hello All,
> >
> > Does there any way to implement link list inside Oracle?
> > Thanks for advance
> >
> > :O
<snip>
> Please note, however, that you'll have to do a query to get the next
> or previous row each time,
<snip>
Not at all, if you use START WITH and CONNECT BY.
The table used as an example could stand a bit of normalizing, so I'll start fresh, and use a forward pointer only. If Ho needs a doubly-linked list, extending this is pretty simple.
create table linked_list
(
node_id number not null, next_node_id number null
containing something like this:
NODE_ID NEXT_NODE_ID
---------- ------------
1 3
2 4
3 5
4 6
5 7
6 8
7 2
8
this will select rows in linked order:
select NODE_ID from LINKED_LIST
start with NODE_ID = 1
connect by NODE_ID = prior NEXT_NODE_ID ;
NODE_ID
1
3
5
7
2
4
6
8
START WITH and CONNECT BY are quite useful for tree-structured data as well; they can traverse up and down the branches of a tree, forward or backward, depending on how the query is coded.
-- John Verbil U S WEST Communications Information Technologies jverbil_at_uswest.com (303) 896-0916Received on Tue Jan 07 1997 - 00:00:00 CST
![]() |
![]() |